docker-overlay网络的工作原理网卡设备
overlay的名词解释
Container eth0:eth0它是Overlay网络分配的唯一的IP地址,它是veth
pair虚拟设备对,作用是实现点对点的通信,通过桥接到br0这个网桥中,可以实现不同 NameSwitch之间容器进行通信。
br0:它是Overlay默认创建的网桥。 VETP:对VXLAN数据包的封装与街封装。 Container
eth1:eth1是容器主机的默认网络,主要提供容器访问外网所提供的服务,走的默认docker网络架构,只不过他创建了docker_gwbridge这个网桥。
docker_gwbridge:docker_gwbridge是容器所创建的网桥它替代了docker0的服务。
eth0:真机网卡与外界网卡连接得真机网卡,它用来转发,容器VXLAN与NAT两种网卡类型的数据包到指定的对端节点
(以上文档是以前看技术大佬的博客总结的,具体是谁忘记了,如有侵犯请联系作者!!)
overlay工作流程
vxlan是网络虚似化通道,
创建好overlay网络时,container里面会有两块网卡分别时overlay类型的和bridge类型,那他们的作用分别是什么呢
跨主机通信时走的时eth0网卡,因为每创建一个overlay网络时,系统就会创建一个network namespace
eth0和network namespace进行连接通过veth pair实现,一段连接到eth0上面另一端连接到network
namespace中的br0上面,对面docker主机同理,两台通过vxlan虚拟通道进行通信,容器另一个网卡的gwbridge是为overlay网络提供外网能力准备的
overlay网络(跨主机通信)实验试图
实验环境
DockerHost-server1
192.168.43.60
DockerHost-server2
192.168.43.160
清空防火墙(两台相同操作)
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save
server1第一台操作:
[root@localhost ~]# hostname server1
[root@localhost ~]# bash
server2第二台操作:
[root@localhost ~]# hostname server2
[root@localhost ~]# bash