如何在一个接口上通过一个绑定共享多个 VLAN

如何在一个接口上通过一个绑定共享多个 VLAN

我尝试在 Debian10 中重现此模式:

         _____eth0                eth1              eth2
        /     /  |                 |                 |
       /     /   |                 |                 |
vlan200  vlan100 |                 |                 |
                 |                 |                 |     
                 _____________________________________
                              |
                         BOND0 + vlan300
  • 当我将 2 个具有不同 IP 的 vlan 放入某个 iface(eth0)中时,一切正常。
  • 当我将其与 vlan 绑定时,就没问题了。
  • 但是,当我在 eth0 中放置 2 个 vlan,并在 eth0-1-2 中创建一个 bond+vlan 时,只有 bond 运行。

我需要在一个eth中放入几个vlan,并且这个eth和其他eth与vlan运行绑定。

热诚地。

答案1

好的,我找到了:

出于简单原因,并为了支持使用能够执行 VLAN 硬件加速卸载的适配器,绑定接口声明自己完全具备硬件卸载能力,它会获取 add_vid/kill_vid 通知以收集必要的信息,并将这些操作传播给从属设备。在混合适配器类型的情况下,应该通过不具备卸载能力的适配器的硬件加速标记数据包将被绑定驱动程序“取消加速”,因此 VLAN 标记位于常规位置。

只有在从属至少一个从属设备后,才可以在绑定接口上添加 VLAN 接口。在添加第一个从属设备之前,绑定接口的硬件地址为 00:00:00:00:00:00。如果在第一次从属设备之前创建 VLAN 接口,它将获取全零硬件地址。一旦第一个从属设备连接到绑定,绑定设备本身将获取从属设备的硬件地址,然后该地址可供 VLAN 设备使用。

另外,请注意,如果所有从属设备都从仍有一个或多个 VLAN 接口的绑定中释放,则可能会出现类似的问题。添加新的从属设备时,绑定接口将从第一个从属设备获取其硬件地址,该地址可能与 VLAN 接口的硬件地址不匹配(该地址最终是从较早的从属设备复制而来的)。

从:https://wiki.linuxfoundation.org/networking/bonding

相关内容