保留 VLAN 范围和限制
Cumulus 保留一组连续的 VLAN ID(保留 VLAN 范围)用于内部数据平面操作。如果配置的 VLAN ID 在保留 VLAN 范围内,则会发生称为 *保留 VLAN 重叠* 的情况,这可能会导致意外的流量模式。
为了防止保留 VLAN 重叠,您可能需要更改保留 VLAN 范围。
配置 VLAN 时请谨慎;Cumulus Linux 不会阻止保留 VLAN 重叠。
保留 VLAN 计数
保留 VLAN 范围中所需的最小 VLAN ID 数量取决于 Cumulus Linux 版本和您配置的功能。您可能需要更改保留 VLAN 范围,以增加为某些功能保留的 VLAN 数量。
- 保留 VLAN 范围是您在配置交换机时不能使用的一组连续的 VLAN ID。
- NVIDIA 不建议您更改保留 VLAN 的数量,除非绝对必要。
- 不要将 VLAN 的数量减少到低于默认值。
- 保留 VLAN 范围要求(基于您的平台、Cumulus Linux 版本和配置)不得超过配置的保留 VLAN 总数。下表显示了每个 Cumulus Linux 版本的默认范围。
- 更改保留 VLAN 的数量时请谨慎:Cumulus Linux 不会阻止您配置可能超过保留 VLAN 数量的功能。
- 更改保留 VLAN 范围需要重启
switchd
。
默认保留 VLAN 范围
版本 | 默认范围 | 默认保留计数 |
---|---|---|
5.x | 3725-3999 | 275 |
4.4.x | 3725-3999 | 275 |
4.3.x | 3600-3999 | 400 |
确定保留 VLAN 范围
- 运行 Cumulus Linux 5.0 及更高版本的 NVIDIA Spectrum 交换机需要为每个网桥和 QinQ 网桥保留一个 VLAN,外加两个。
- 运行 Cumulus Linux 4.4 及更早版本的 NVIDIA Spectrum 交换机需要为每个网桥、物理接口、第 3 层子接口和 QinQ 网桥保留一个 VLAN,外加一个。
- 运行 Cumulus Linux 4.3 及更早版本的 Broadcom 交换机需要为每个网桥、物理接口、第 3 层子接口和 QinQ 网桥保留一个 VLAN,外加一个。
下面的示例提供了 Linux 类型的 shell 命令,以帮助您确定正在使用和配置的 VLAN 计数和值。这些命令仅供参考。请按照以下指南确定如何最好地计算这些值。
如果您的交换机运行的是 Cumulus Linux 5.0 或更高版本,请转到步骤 2。如果您的交换机运行的是 Cumulus Linux 4.4 或更早版本,请确定您的平台支持的物理接口总数。例如,NVIDIA SN2700 交换机共有 32 个 QSFP 端口,您可以将其拆分为 2x 或 4x。
在最大拆分 (4x) 时,共有 128 个物理端口。无论配置如何,Cumulus Linux 始终使用此数量的保留 VLAN
- 32 x 1 = 32 个保留 VLAN ID(在未拆分的交换机上)
- 32 x 2 = 64 个保留 VLAN ID(在所有端口以 2x 模式拆分的交换机上)
- 16 x 4 = 64 个保留 VLAN ID(在所有端口以 4x 模式拆分的交换机上)
确定配置中网桥的总数。下面的示例使用
bridge-ports
语句作为计数键。cumulus@switch:~$ sudo cat /etc/network/interfaces | grep "bridge-ports" | wc -l cumulus@switch:~$ sudo cat /etc/network/interfaces.d/*.intf | grep "bridge-ports" | wc -l cumulus@switch:~$ sudo cat /etc/network/interfaces | grep "bridge-ports" | wc -l cumulus@switch:~$ sudo cat /etc/network/interfaces.d/*.intf | grep "bridge-ports" | wc -l
如果您使用双标记 Q-in-Q,请确定配置中未定义的隐式网桥总数。下面的示例使用唯一的 interfaces+inner 标签 (swpX.Y) 作为计数键。
cumulus@switch:~$ sudo grep -o -h "iface swp.*\.[[:digit:]]*\." /etc/network/interfaces | sort -u | wc -l cumulus@switch:~$ sudo grep -o -h "iface swp.*\.[[:digit:]]*\." /etc/network/interfaces.d/*.intf | sort -u | wc -l
如果您的交换机运行的是 Cumulus Linux 5.0 或更高版本,请转到步骤 5。如果您的交换机运行的是 Cumulus Linux 4.4 或更早版本,请确定配置中第 3 层子接口的总数。下面的示例使用
vlan-raw-device
语句作为计数键。cumulus@switch:~$ sudo cat /etc/network/interfaces | grep "vlan-raw-device" | wc -l cumulus@switch:~$ sudo cat /etc/network/interfaces.d/*.intf | grep "vlan-raw-device" | wc -l
将步骤 1 到步骤 4 的总数相加。
- 对于运行 5.0 及更高版本的 NVIDIA Spectrum 交换机:网桥 +(隐式 QinQ 网桥)+ 2 = 配置的最小值。
- 对于运行 4.4 及更早版本的 NVIDIA Spectrum 交换机:接口 + 网桥 +(隐式 QinQ 网桥)+ 第 3 层子接口 + 1 = 配置的最小值。
- 对于运行 4.3 及更早版本的 Broadcom 交换机:接口 + 网桥 +(隐式 QinQ 网桥)+ 第 3 层子接口 + 1 = 配置的最小值。
永远不要超过此计数,即使是暂时的,以便您为未来的扩展、正在进行的操作和自动化留有空间。例如,自动化系统可以通过添加然后删除旧网桥来修改网桥。Cumulus 不保证在执行多步骤操作时保留 VLAN 的最小使用量。
选择一个连续的 VLAN 范围,该范围覆盖步骤 5 中所需的计数,并且不与配置中的 VLAN ID 重叠。下面的示例确定配置中哪些 VLAN ID
cumulus@switch:~$ grep -h "iface swp" /etc/network/interfaces | grep -iv "\#" | cut -s -d '.' -f 2- | tr '.' '\n' | sort -u | sort -n cumulus@switch:~$ grep -h "iface swp" /etc/network/interfaces.d/*.intf | grep -iv "\#" | cut -s -d '. ' -f 2- | tr '.' '\n' | sort -u | sort -n
更改保留 VLAN 范围
要更改保留 VLAN 范围,请运行以下命令。
- 对于 Cumulus Linux 5.3 及更高版本,您可以运行 NVUE 或 Linux 命令。
- 对于 Cumulus Linux 5.2 及更早版本,您必须运行 Linux 命令。
以下示例将保留 VLAN 范围更改为 4064 到 4094 之间。
cumulus@switch:~$ nv set system global reserved vlan internal range 4064-4094
cumulus@switch:~$ nv config apply
NVUE 重启 switchd
服务。
编辑
/etc/cumulus/switchd.conf
文件,取消注释resv_vlan_range
行并指定新范围。cumulus@switch:~$ sudo nano /etc/cumulus/switchd.conf ... # global reserved vlan internal range resv_vlan_range = 4064-4094
保存文件后,您必须重启
switchd
cumulus@switch:~$ sudo systemctl restart switchd.service
保留的第 3 层 VNI VLAN
除了内部保留 VLAN 范围外,Cumulus Linux 还在 EVPN 对称路由部署中为第 3 层 VNI 分配一个保留 VLAN 范围。当您在 MLAG 环境中使用 NVUE 命令配置第 3 层 VNI 时,请使用此保留 VLAN 范围。您可以使用 nv show system global reserved vlan l3-vni-vlan
命令显示该范围
cumulus@switch:~$ nv show system global reserved vlan l3-vni-vlan
operational applied
----- ----------- -------
begin 4000 4000
end 4064 4064
不要在与您的 MLAG 接口和第 3 层 VNI 相同的网桥中使用此 VLAN 范围。您可以使用 nv set system global reserved vlan l3-vni-vlan begin <vlan>
和 nv set system global reserved vlan l3-vni-vlan end <vlan>
命令配置该范围。有关更多信息,请参阅对称路由。
全局保留的第 3 层 VNI VLAN 范围不适用于您使用 Linux 命令而不是 NVUE 手动配置的交换机,也不适用于没有 MLAG 的对称路由部署。