docker网络--多机通信--2--ipvlan
一.介绍
看了Ipvlan大量的资料,终于把IPvlan弄懂7788了。IPvlan的各个功能,基本上都做了实验,步骤非常详细。
ipvlan的模式主要就是2种,L2和L3,L2模式和macvlan的模式很像(关于macvlan,可以参考我[上一篇文章]
(https://blog.csdn.net/weixin_43501172/article/details/123818737?spm=1001.2014.3001.5502)),L3模式就是在每台主机上添加路由器,转发各个endpoint 路由报文。关于本文章中提到的使用场景,如果想了解的更详细,请参考此文章。
关于IPvlan的2层模式和3层模式的具体介绍和详细解读,请参考此文章1和文章2
对于本文章中,关于实验的部分,主要是基于docker的官网,在此基础上,进行实验和进一步扩展,docker官方文档地址。对于IPvlan关于IPv6部分,因为不懂IPv6,暂时没有做任何研究。
a.使用场景
如果有几下匹配到场景那么久可以适用ipvlan
1.Linux主机连接到的外部交换机已经做了一端口一mac的绑定。
2.有创建mac个数限制/NIC处于混杂模式/性能的考虑。
3.如果slave设备放置在一个容易改变的/错误使用的二层环境里面。
b.工作模式
两种工作模式
ipvlan有两种不同的工作模式:L2和L3。一个父接口只能选择其中一种模式(不能采用混用模式),依附于它的所有虚拟接口都会运行在这个模式下。
1.L2模式
Ipvlan的L2模式和macvlan的bridge模式工作原理很相似,父接口作为交换机来转发子接口的数据。同一个网络的子接口可以通过父接口来转发数据,而如果想发送到其他网络,报文则会通过父接口的路由转发出去。
2.L3模式
L3模式下,ipvlan有点像路由器的功能,它在各个虚拟网络和主机网络之间进行不同网络报文的路由转发工作。只要父接口相同,即使虚拟机/容器不在同一个网络,也可以互相ping通对方,因为ipvlan会在中间做报文的转发工作。
L3模式下的虚拟接口不会接收到多播或者广播的报文(ipvlan的虚拟接口会显示NOARP标志),在这个模式下,所有的网络报文都会发送给父接口,因此所有的ARP过程或者多播都是在底层的父接口完成的。需要注意的是:外部网络默认情况下是不知道ipvlan虚拟出来的网络的,如果不在外部路由器上配置好对应的路由规则,ipvlan的网络是不能被外部直接访问的。
二.实验-----L2模式单vlan跨主机通信
a.IPvlan的网络和宿主机处于同一个网络
整体拓扑图
步骤:
1.准备一台虚拟机(xwl-1),ubuntu系统,该虚拟机与宿主机通过bridge桥接到宿主机的无线网卡,网络如下图:
2.虚拟机未配置之前的状态图