IPVLAN 内核协议栈深度解析

发布时间:2026/10/14 23:37:45
IPVLAN 内核协议栈深度解析
一句话主线:ipvlan 的所有行为都围绕三个对象展开——master 上的ipvl_port(聚合点)、挂在 masterrx_handler上的ipvlan_handle_frame(唯一收包入口)、以及"换skb-dev后重走一遍协议栈"这一个核心机制。理解了这三样,L2/L3/L3S 的差异只是同一个骨架上的不同分支。一、IPVLAN 接口与 port↔slave 的结构关系IPVLAN 是 Linux 内核虚拟网络驱动(CONFIG_IPVLAN),允许在一块物理网卡上派生多个虚拟子接口,所有 slave 共享 master 的同一个 MAC 地址,内核按IP 地址而非 MAC 做多路复用。也因此,ipvlan 的"子接口"不是 802.1Q VLAN 子接口(eth0.100那种带 tag 的设备),而是挂靠在 master netdev 上的独立虚拟 netdev。先建立 port↔slave 的关系认知,这是理解后文一切代码的前提。drivers/net/ipvlan/ipvlan.h中的核心结构(简