macvlan容器网络方案
macvlan是Linux自带的虚拟网卡,基于同一个底层网卡的macvlan设备会形成一个逻辑的交换机,提供交换能力,性能优化linux bridge。
macvlan方案
macvlan数据面如下:
同节点容器通信
容器A访问容器B,数据面流程如下:
- 容器A和容器B在相同网络,直接发送
- 容器A向容器B发送ARP请求
- macvlan交换机flood ARP请求
- 容器B收到ARP请求后,会响应ARP请求
- eth0接口收到ARP请求后,向节点网络发送ARP请求,但是并没有节点响应
- macvlan交换机转发ARP响应给容器A
- 容器A接收到ARP响应,封装二层报文并发出
- macvlan交换机直接转发报文到容器B
- 容器B接收到报文
跨节点容器通信
容器A访问容器D,数据面流程如下:
- 容器A和容器D在相同网络,直接发送
- 容器A向容器D发送ARP请求
- macvlan交换机flood