我正在Windows 10的Virtual Box上运行的“ Ubuntu Docker主机”上运行一些frr(自由范围路由)和ceos(Arista)容器。
我创建了一个macvlan网络(net3),并将其绑定到Ubuntu的enp接口,并将容器连接到它。但是,我无法使用连接到macvlan网络的接口访问容器。 我了解了有关主机和容器之间的网络空间的一些限制,并将macvlan网络类型视为克服这些限制的解决方案。但是它没有用。
由于我的容器是具有多个接口的路由器,因此我希望可以将新的net3网络连接到我的容器。它会显示为一个新的新接口(确实如此),当我从家庭网络向该接口分配IP地址时,我的路由器将能够使用该接口的IP地址直接与外部通信,并绕过任何防火墙,NAT等。
我知道我们可以使用连接到默认docker0网络的网桥网络,然后如果发布端口等,它将从容器NAT出站连接并接受传入的连接。但是我想要的是拥有一个带有2个接口的容器,其中一个接口位于docker0桥接器中,另一个接口使用来自家庭网络的IP地址连接到家庭网络,这将使该接口完全像物理计算机或我的主机托管Ubuntu VM一样暴露于外部。
答案 0 :(得分:1)
我认为我找到了一种使这项工作成功的方法。
我现在不了解的是,尽管主机上的路由已禁用,但是此“转发”规则会对流量产生影响,并且它实际上正在工作。我也不需要为返回流量添加规则流量。 Docker在创建容器期间添加的默认规则似乎可以解决这个问题。