Docker Overlay 工作原理

Docker 原生Overlay 网络工作流程

如图:有两个Container 独立的容器节点。他们通过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两种网卡类型的数据包到指定的对端节点。


发送数据包流程

容器Container1 发送数据包 到容器 Container2。

  • 1、容器Container1会通过Container eth0 将这个数据包发送到 10.0.0.1 的网关。
  • 2、网关将数据包发送出去后到达b20网桥。
  • 3、b20网桥针对VXLAN设备,主要用于捕获对外的数据包通过VETP进行数据包封装。
  • 4、封装好将VXLAN格式数据包交给eth0,通过UDP方式交给Container2的eth0。
  • 5、Container2收到数据包后通过VETP将数据包解封装。
  • 6、网桥通过网关将解封装的数据包转发给Container eth0,完毕通信。

 

posted @ 2018-11-02 19:58  kevin.Xiang  阅读(9823)  评论(0编辑  收藏  举报