转发表大小和配置文件

Cumulus Linux 公布交换机上支持的最大转发表条目数,包括

  • 掩码小于 /32 的第 3 层 IPv4 LPM 条目
  • 掩码为 /64 或更小的第 3 层 IPv6 LPM 条目
  • 掩码大于 /64 的第 3 层 IPv6 LPM 条目
  • ip neighbor 中看到的下一跳第 3 层 IPv4 邻居(或主机)条目
  • ip -6 neighbor 中看到的下一跳第 3 层 IPv6 邻居条目
  • ECMP 下一跳,即路由表中指定其路由路径中下一个最近或最优路由器的 IP 地址条目
  • MAC 地址

要确定交换机上的当前表大小,请运行 NVUE nv show platform asic resource 命令或 Linux cl-resource-query 命令。

每个交换架构都有可用于转发表条目的特定资源。Cumulus Linux 存储

  • 转发表资源在 KVD 中。
  • ACL 表条目和其他交换功能存储在快速存储区中,Spectrum 1 上称为 TCAM,Spectrum-2 及更高版本上称为 ATCAM

Cumulus Linux 为转发表资源提供了各种通用配置文件,并且根据您的网络设计,您可能需要调整各种交换机参数以根据需要分配资源。

以下配置文件中提供的值是 Cumulus Linux 软件分配的最大值;理论硬件限制可能会更高。这些限制是指 NVIDIA 作为单维度规模验证一部分检查的值。如果您尝试在启用多个功能的情况下实现最大可扩展性,则结果可能与本指南中列出的值不同。

Spectrum 1

转发资源配置文件控制单播转发表条目分配。在 Spectrum 1 交换机上,TCAM 配置文件控制多播转发表条目分配。有关多播路由条目限制的更多信息,请参阅 ACL 规则的硬件限制

配置文件
MAC 地址
第 3 层邻居
LPM
默认40k32k (IPv4) 和 8k (IPv6)64k (IPv4) 和 22k (IPv6-long)
l2-重负载88k48k (IPv4) 和 18k (IPv6)8k (IPv4) 和 8k (IPv6-long)
l2-重负载-1176k4k (IPv4) 和 2k (IPv6)4k (IPv4) 和 2k (IPv6-long)
l2-重负载-286k86k (IPv4) 和 4k (IPv6)8k (IPv4), 4k (IPv6-long)
v4-LPM-重负载8k8k (IPv4) 和 16k (IPv6)80k (IPv4) 和 16k (IPv6-long)
v4-LPM-重负载-16k6k (IPv4) 和 2k (IPv6)176k (IPv4) 和 2k (IPv6-long)
v6-LPM-重负载27k8k (IPv4) 和 36k (IPv6)8k (IPv4), 32k (IPv6-long) 和 32k (IPv6/64)
LPM-平衡6k4k (IPv4) 和 3k (IPv6)60k (IPv4), 60k (IPv6-long) 和 120k (IPv6/64)
ECMP-下一跳-重负载20K32k (IPv4) 和 4k (IPv6)50k (IPv4) 4k (IPv6-long)

ecmp-nh-heavy 配置文件不支持 热重启模式

Spectrum-2 及更高版本

在 Spectrum-2 及更高版本上,转发资源配置文件控制单播和多播转发表条目分配。

配置文件
MAC 地址
第 3 层邻居
LPM
默认50k41k (IPv4) 和 20k (IPv6)82k (IPv4), 74k (IPv6-short), 1k (IPv4-Mcast)
l2-重负载115k74k (IPv4) 和 37k (IPv6)16k (IPv4), 24k (IPv6-short), 1k (IPv4-Mcast)
l2-重负载-1239k16k (IPv4) 和 12k (IPv6)16k (IPv4), 16k (IPv6-short), 1k (IPv4-Mcast)
l2-重负载-2124k132k (IPv4) 和 12k (IPv6)16k (IPv4), 16k (IPv6-short), 1k (IPv4-Mcast)
l2-重负载-3107k90k (IPv4) 和 80k (IPv6)25k (IPv4), 10k (IPv6-short), 1k (IPv4-Mcast)
v4-LPM-重负载16k41k (IPv4) 和 24k (IPv6)124k (IPv4), 24k (IPv6-short), 1k (IPv4-Mcast)
v4-LPM-重负载-116k16k (IPv4) 和 4k (IPv6)256k (IPv4), 8k (IPv6-short), 1k (IPv4-Mcast)
v6-LPM-重负载16k16k (IPv4) 和 62k (IPv6)16k (IPv4), 99k (IPv6-short), 1k (IPv4-Mcast)
v6-LPM-重负载-15k4k (IPv4) 和 4k (IPv6)90k (IPv4), 235k (IPv6-short), 1k (IPv4-Mcast)
LPM-平衡16k16k (IPv4) 和 12k (IPv6)124k (IPv4), 124k (IPv6-short), 1k (IPv4-Mcast)
IPMC-重负载57k41k (IPv4) 和 20k (IPv6)82k (IPv4), 66k (IPv6-short), 8k (IPv4-Mcast)
IPMC-最大41K41k (IPv4) 和 20k (IPv6)74k (IPv4), 66k (IPv6-short), 15k (IPv4-Mcast)

IPv6 数字对应于 /64 IPv6 前缀。/128 IPv6 前缀数字是 /64 IPv6 前缀数字的一半。

对于 ipmc-max 配置文件,cl-resource-query 命令输出显示 33K 而不是 15K 作为 switchd 中 IPv4 多播路由的最大数量。15K 是受支持和验证的值。您可以使用更高的值 33K 在非生产环境中测试更高的多播规模。

更改转发资源配置文件

您可以设置最适合您网络架构的配置文件。

运行 nv set system forwarding profile <profile-name> 命令以指定要使用的配置文件。

以下示例命令设置 l2-heavy 配置文件

cumulus@switch:~$ nv set system forwarding profile l2-heavy 
cumulus@switch:~$ nv config apply

要将配置文件设置回默认值

cumulus@switch:~$ nv unset system forwarding profile l2-heavy 
cumulus@switch:~$ nv config apply

除了上述命令,您还可以运行 nv set system forwarding profile default 命令将配置文件设置回默认值。

使用 /etc/cumulus/datapath/traffic.conf 文件中的 forwarding_table.profile 变量指定要使用的配置文件。以下示例指定 l2-heavy

cumulus@switch:~$ sudo cat /etc/cumulus/datapath/traffic.conf
...
forwarding_table.profile = l2-heavy

指定不同的配置文件后,使用 sudo systemctl restart switchd.service 命令重启 switchd

要显示您的交换机支持的不同转发配置文件以及每个转发配置文件的 MAC 地址、第 3 层邻居和 LPM 规模可用性,请运行 nv show system forwarding profile-option 命令。

ACL 和 VLAN 内存资源

除了转发表内存资源外,ACL 和 VLAN 接口的其他内存资源也有限制;请参阅 ACL 规则的硬件限制