ipvlan是内核中比较新的特性,使用ipvlan也需要较新的内核版本,这里最好使用大于kernel-4.2的内核版本。ipvlan支持两种不同的mode,一种是L2,一种是L3
1. 如果使用的mode为L2的话,分配ip给Container,Container中会做arp的广播发送,L2模式的master设备相当于一个二层的交换机,会进行转发,如果需要路由的话,会通过master设置进行路由转发。
2. 如果使用mode的L3模式的话,在L3模式下,ipvlan的虚拟机接口是不处理arp的广播和请求的,也就是在ipvlan的虚接口上会显示NOARP的标志,结合代码的流程可知:二层的广播交给了master device进行处理.在这种模式下master设备类似于路由器进行转发,需要配置针对container的路由信息。
下面主要看一下内核中在处理ipvlan不同的模式时,代码流程。
图1 mode L2 xmit
图2: mode l2 rcv
图3:mode L3 xmit