以太网桥接 - VLAN

以太网桥允许主机通过第 2 层进行通信,方法是将系统中的物理和逻辑接口连接到单个第 2 层域中。桥是具有 MAC 地址和 MTU 的逻辑接口。桥 MTU 是其所有成员中最小的 MTU。

  • 桥成员可以是单个物理接口、绑定或遍历 802.1Q VLAN 中继的逻辑接口。
  • 默认情况下,Cumulus Linux 不会将所有端口都放入桥中。

以太网桥类型

Cumulus Linux 桥驱动程序支持两种配置模式;一种是 VLAN 感知模式,另一种是遵循更传统的 Linux 桥模型。

NVIDIA 建议您使用VLAN 感知模式桥,而不是传统模式桥。Cumulus Linux 桥驱动程序能够进行 VLAN 过滤,这允许配置类似于现有网络设备。有关传统模式和 VLAN 感知模式的比较,请参阅这篇知识库文章

您可以在 Cumulus Linux 中的同一网络上配置 VLAN 感知桥和传统模式桥。

桥 MAC 地址

当帧通过接口进入桥时,交换机学习该帧的 MAC 地址,并将 MAC 地址记录在桥表中。桥通过查找目标 MAC 地址将帧转发到其预期目的地。Cumulus Linux 将 MAC 条目维护 1800 秒(30 分钟)。如果交换机在 MAC 条目老化到期之前看到具有相同源 MAC 地址的帧,则会刷新 MAC 条目老化时间;如果 MAC 条目老化到期,则交换机将从桥表中删除 MAC 地址。

以下 NVUE 命令输出示例显示了桥的 MAC 地址表。

cumulus@switch:~$ nv show bridge domain br_default mac-table
     age    bridge-domain  entry-type  interface   last-update  mac                src-vni  vlan  vni  Summary
---  -----  -------------  ----------  ----------  -----------  -----------------  -------  ----  ---  ----------------------
+ 0  87699  br_default     permanent   bond3       87699        44:38:39:00:00:35
+ 1  87699  br_default     permanent   bond1       87699        44:38:39:00:00:31
+ 2  87699  br_default     permanent   bond2       87699        44:38:39:00:00:33
+ 3                        permanent   br_default               00:00:00:00:00:10
+ 4                        permanent   br_default               00:00:00:00:00:20
+ 5                        permanent   br_default               00:00:00:00:00:30
+ 6  84130  br_default     permanent   br_default  84130        44:38:39:22:01:b1           30
+ 7  87570  br_default     permanent   vxlan48     87570        42:ff:4d:82:c9:99
+ 8  84130                 permanent   vxlan48     84130        00:00:00:00:00:00  10                  remote-dst: 224.0.0.10

bridge fdb 命令输出

Linux bridge fdb 命令与 FDB 交互,桥使用 FDB 存储其学习到的 MAC 地址以及学习到这些 MAC 地址的端口。bridge fdb show 命令输出包含一些特定关键字

关键字描述
selfFDB 条目属于设备引用的设备上的 FDB。
例如,此 FDB 条目属于 VXLAN 设备
vx-1000: 00:02:00:00:00:08 dev vx-1000 dst 27.0.0.10 self
masterFDB 条目属于设备主设备上的 FDB,并且 FDB 条目指向主设备的端口。
例如,此 FDB 条目来自名为 bridge 的主设备,并且指向 VXLAN 桥端口
vx-1001: 02:02:00:00:00:08 dev vx-1001 vlan 1001 master bridge
extern_learn外部控制平面(例如 BGP 控制平面,用于 EVPN)管理(卸载)FDB 条目。

以下示例显示了 bridge fdb show 命令输出

cumulus@switch:~$ bridge fdb show | grep 02:02:00:00:00:08
02:02:00:00:00:08 dev vx-1001 vlan 1001 extern_learn master bridge
02:02:00:00:00:08 dev vx-1001 dst 27.0.0.10 self extern_learn
  • 02:02:00:00:00:08 是使用 BGP EVPN 学习到的 MAC 地址。
  • 第一个 FDB 条目指向 Linux 桥条目,该条目指向 VXLAN 设备 vx-1001
  • 第二个 FDB 条目指向 VXLAN 设备上的同一条目,并包含其他远程目标信息。
  • VXLAN FDB 使用其他远程目标信息来扩充桥 FDB。
  • 指向 VXLAN 端口的所有 FDB 条目都显示为两个条目。第二个条目扩充了远程目标信息。

注意事项

  • 一个桥不能包含相同端口的多个子接口。尝试此配置会导致错误。
  • 如果您同时使用 VLAN 感知桥和传统桥,如果传统桥包含作为 VLAN 感知桥中的普通接口的绑定子接口,则当您在传统桥中关闭绑定子接口时,桥会发生抖动。
  • 您不能将 VLAN 原始设备绑定到不同的主接口(您不能编辑 /etc/network/interfaces 文件中的 vlan-raw-device 设置)。您需要删除 VLAN 并重新创建它。
  • 默认情况下,Cumulus Linux 在传统和 VLAN 感知桥接口上启用 MAC 学习。除非您使用 EVPN,否则不要禁用 MAC 学习。请参阅以太网虚拟专用网络 - EVPN