计算传统模式下 Linux 网桥的限制

本文介绍了传统模式下 Linux 网桥的 200 个 VLAN 限制的来源,以及用户可能想要使用 VLAN 感知网桥的原因。VLAN 感知与传统模式网桥的比较可在此处获得。

接口规模

通过测试,配置接口(包括子接口、网桥、VXLAN 等)的软限制约为 9600。超过 9600,启动时间会增加;但是,由于可接受的启动时间取决于操作员,这只是一个软限制。虽然此限制并非 Cumulus Linux 独有,但 NVIDIA 使用各种处理器和 RAM 测试了各种 NVIDIA 支持的交换机。

配置接口

配置接口包括

  • 子接口 (swp1.5, swp1.10, swp1.30)
  • 网桥
  • VXLAN

由于传统模式下的网桥没有 VLAN 的概念,因此它必须使用子接口来标记流量以符合 802.1q 标准,因此在 /etc/network/interfaces 中配置了 autoinet 的任何接口都会被计算在内。

200 个 VLAN 限制

200 个 VLAN 的限制源于用户将叶交换机的全部 48 个端口配置为 trunk 时的情况,达到 9600 的接口软限制 (48*200=9600)。

接口公式为

(VLAN 数量 * 接口数量) + VLAN 数量 + VXLAN 数量 + 1 eth0 + 1 LO = 接口数量

例如

(200*48) + 200 + 0 + 1 + 1 = 9802

此公式足够接近 9600 的软限制,不会影响启动时间。

但是,可以配置使用超过 200 个 VLAN 的设置。例如,如果您将 swp1-20 配置为总共 200 个 VLAN,而 swp21-40 具有一组单独的 200 个 VLAN,那么您总共有 400 个 VLAN,而总端口数只有 40 个。这在技术上是在限制范围内的(如下面的公式所示),即使网桥数量是建议最大值的两倍

(20 swp * 200 VLANs) + (20 swp * 200 VLANs) + 400 VLANs + 0 VXLANs + 1 eth0 + 1 lo = 8402

示例一

要求

一个 trunk(物理端口),每个端口有两个 VLAN。它不需要任何 VXLAN。

公式

(2 * 1) + 2 + 0 + 1 + 1 = 6 interfaces

以下示例显示了配置

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto swp1.10
iface swp1.10

auto swp1.20
iface swp1.20

bridge br-10
iface br-10
  bridge-ports swp1.10

bridge br-20
iface br-20
  bridge-ports swp1.20

示例二

要求

两个 trunk(物理端口),每个端口有三个 VLAN 和一个 VXLAN。

公式

(3 * 2) + 3 + 1 + 1 + 1 = 12 interfaces

以下示例显示了配置

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto swp1.10
iface swp1.10

auto swp1.20
iface swp1.20

auto swp1.30
iface swp1.30

auto swp2.10
iface swp2.10

auto swp2.20
iface swp2.20

auto swp2.30
iface swp2.30

auto br-10
iface br-10
  bridge_ports swp1.10 swp2.10

auto br-20
iface br-20
  bridge_ports swp1.20 swp2.20

auto br-30
iface br-30
  bridge_ports swp1.30 swp2.30

auto VXLAN10
iface VXLAN10
  vxlan-id 10

附加信息

在所有 52 个端口上要求 2000 个 VLAN 不起作用,因为它启动时间太长。

(2000*52) + 2000 + 0 + 1 + 1 = 106,002

VLAN 感知模式下的 Linux 网桥使用在网桥中配置 VLAN 的单个网桥,这意味着它仅计入一个配置接口(在最多 9600 个接口中)。这意味着您可以配置数千个 VLAN,而只使用 9600 个接口中的一个,然后启动时间才会增加。如果您使用 200 个或更多 VLAN,则此方法更具可扩展性,并且也很容易使用 ifupdown2NCLU 进行配置。