docker0和eth0有什么关系?
我知道默认情况下docker创建一个虚拟网桥docker0
,并且所有容器网络都链接到docker0
。
如上图所示:
- 容器
eth0
与vethXXX
vethXXX
链接到docker0
的机器与链接到交换机的机器相同
但是docker0
和主机之间是什么关系eth0
呢?进一步来说:
- 当数据包从容器流到docker0时,如何知道将其转发到eth0,然后再转发到外部世界?
- 当外部数据包到达eth0时,为什么将其转发到docker0然后转发到容器? 而不是处理它或丢弃它?
问题2可能有点令人困惑,我将保留在那里并进一步解释:
- 这是一个由容器(问题1)初始化的返回数据包:由于外部不知道容器网络,因此该数据包被发送到host
eth0
。如何将其转发到容器?我的意思是,必须有一些存储信息的地方,我该如何检查呢?
提前致谢!
阅读答案和官方网络文章后,我发现下图更准确,docker0
并且eth0
没有直接链接,而是可以转发数据包:
http://dockerone.com/uploads/article/20150527/e84946a8e9df0ac6d109c35786ac4833.png
-
默认
docker0
网桥和主机以太网设备之间没有直接链接。如果--net=host
对容器使用该选项,则主机和容器网络堆栈将被链接。当数据包从容器流到docker0时,如何知道将其转发到eth0,然后再转发到外部世界?
该
docker0
桥梁有.1
分配给它的泊坞窗网的地址,这通常是一个或172.17围绕172.18东西。$ ip address show dev docker0 8: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:03:47:33:c1 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 scope global docker0 valid_lft forever preferred_lft forever
为容器分配了连接到
docker0
桥的veth接口。$ bridge link 10: vethcece7e5 state UP @(null): <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master docker0 state forwarding priority 32 cost 2
在默认Docker网络上创建的容器接收该
.1
地址作为其默认路由。$ docker run busybox ip route show default via 172.17.0.1 dev eth0 172.17.0.0/16 dev eth0 src 172.17.0.3
Docker使用NAT MASQUERADE从那里进行出站通信,它将遵循主机上的标准出站路由,该默认出站路由可能默认为
eth0
。$ iptables -t nat -vnL POSTROUTING Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0
iptables处理连接跟踪并返回流量。
当外部数据包到达eth0时,为什么将其转发到docker0然后转发到容器?而不是处理它或丢弃它?
如果您询问返回的出站流量,请参阅上面的iptables。
如果您是指新的入站流量,则默认情况下不会将数据包转发到容器中。实现此目的的标准方法是设置端口映射。Docker启动一个守护程序,该守护程序侦听端口X上的主机,然后转发到端口Y上的容器。
我不确定为什么NAT也没有用于入站流量。尝试将大量端口映射到容器中时遇到了一些问题,导致将真实世界的接口完全映射到容器中。
-
如何确定eth0模式是static还是dhcp?
2021-02-01 关注 0 浏览149 1答案
-
关于CC单板的ETH0端口,下列说法正确的是:[2分]
2022-05-10 关注 0 浏览18 1答案
-
工程师A在维护EulerOS时发现服务器接口eth0速率异常,为了修改eth0网口为千兆全双工的模式,下列命令正确的是:( )
2022-05-11 关注 0 浏览22 1答案
-
在Docker的桥接网络模式下,docker0网桥是在Docker dae...
2022-03-03 关注 0 浏览32 1答案
-
如何在非图形界面下抓取来自eth0的目标地址为123.13.1.3的80端...
2022-03-02 关注 0 浏览15 1答案
-
[AC]设备单网桥部署,eth0和eth2为一对网桥,eth3为管理口,现忘记了桥地址和管理口的IP地址,请问下面哪种方法不能登录设备控制台( )
2022-05-10 关注 0 浏览16 1答案
-
皮鞋和鞋油有什么关系?
2022-05-15 关注 0 浏览19 1答案
-
JSP 和Servlet 有有什么关系?
2020-12-26 关注 0 浏览88 1答案
-
Selenium RC和WebDriver有什么关系?
2021-02-01 关注 0 浏览116 1答案
-
Spring Boot和Spring IO有什么关系?
2021-02-02 关注 0 浏览97 1答案