![如果将 vlan 设备添加到已经是 vlan 设备的接口,会发生什么情况?](https://linux22.com/image/20844/%E5%A6%82%E6%9E%9C%E5%B0%86%20vlan%20%E8%AE%BE%E5%A4%87%E6%B7%BB%E5%8A%A0%E5%88%B0%E5%B7%B2%E7%BB%8F%E6%98%AF%20vlan%20%E8%AE%BE%E5%A4%87%E7%9A%84%E6%8E%A5%E5%8F%A3%EF%BC%8C%E4%BC%9A%E5%8F%91%E7%94%9F%E4%BB%80%E4%B9%88%E6%83%85%E5%86%B5%EF%BC%9F.png)
在配置使用创建 VLAN 的应用程序时vconfig add
,我发现它正在将 VLAN 设备添加到已经是 VLAN 设备的设备中。实际上,发生的事情是:
# vconfig add bond0 168
...
# vconfig add bond0.168 100
然后,vlan100 接口连接到连接到 KVM 实例的网桥:
# brctl addbr br100
...
# brctl addif br100 vlan100
桥梁的外观如下:
# brctl show
bridge name bridge id STP enabled interfaces
br100 8000.02163e4fc8db no vlan100
vnet0
virbr0 8000.000000000000 yes
奇怪的是,一切似乎都正常,我能够 ssh 到我的 KVM 实例。
将 vlan 设备添加到已经是 vlan 设备的接口时会发生什么?特别是,发送到 VM 实例的以太网帧具有什么 VLAN 标记?
答案1
当您将 VLAN 添加到已经是虚拟 VLAN 接口的设备时,您将获得一个QinQ 接口,这意味着数据包将带有双 VLAN 标记或 VLAN 堆叠传出。这在技术上是可行的,因为一个 VLAN 数据包可以在内部传输另一个 VLAN 数据包。