交换机端口属性

Cumulus Linux 为几种类型的物理和逻辑设备公开网络接口

  • lo 是网络环回设备
  • eth 是交换机管理端口(仅用于带外管理)
  • swp 是交换机前面板端口
  • (可选)br 是桥接(IEEE 802.1Q VLAN)
  • (可选)bond 是链路聚合(IEEE 802.3ad 链路聚合中继,或端口通道)

每个物理网络接口(端口)都有多个设置

  • 自动协商
  • 双工模式
  • 链路速度
  • MTU
  • FEC

对于 NVIDIA Spectrum ASIC,固件会自动配置 FEC、链路速度、双工模式和自动协商,直到链路建立。您可以根据需要禁用 FEC,这将强制固件不尝试任何 FEC 选项。

MTU

接口 MTU 适用于遍历管理端口、前面板或交换机端口、桥接、VLAN 子接口和链路聚合(物理和逻辑接口)的流量。MTU 是唯一必须手动设置的接口设置。

在 Cumulus Linux 中,ifupdown2 将 9216 分配为默认 MTU 设置。驱动程序设置的初始 MTU 值为 9238。配置接口后,默认 MTU 设置为 9216。

要更改 MTU 设置,请运行以下命令。示例命令将 swp1 接口的 MTU 设置为 1500。

cumulus@switch:~$ nv set interface swp1 link mtu 1500
cumulus@switch:~$ nv config apply

编辑 /etc/network/interfaces 文件,然后运行 ifreload -a 命令。

cumulus@switch:~$ sudo nano /etc/network/interfaces

auto swp1
iface swp1
    mtu 1500
cumulus@switch:~$ sudo ifreload -a

运行时配置(高级)

运行 ip link set 命令。以下示例命令将 swp1 接口 MTU 设置为 1500。

cumulus@switch:~$ sudo ip link set dev swp1 mtu 1500

运行时配置是非持久性的;您创建的配置在您重新启动交换机后不会保留。

设置全局策略

要设置全局 MTU 策略,请创建策略文档(名为 mtu.json)。例如

cumulus@switch:~$ sudo cat /etc/network/ifupdown2/policy.d/mtu.json
{
  "address": {"defaults": { "mtu": "9216" }
            }
}

/etc/network/ifupdown2/policy.d/ 中任何文件中的策略和属性都将覆盖 /var/lib/ifupdown2/policy.d/ 中的默认策略和属性。

桥接 MTU

MTU 设置是桥接成员的任何接口的最低 MTU(/etc/network/interfaces 文件的桥接配置中的 bridge-ports 中指定的每个接口)。您无需在桥接上指定 MTU。考虑以下桥接配置

auto bridge
iface bridge
    bridge-ports bond1 bond2 bond3 bond4 peer5
    bridge-vids 100-110
    bridge-vlan-aware yes

为了使桥接的 MTU 为 9000,请将每个成员接口(bond1 到 bond 4 以及 peer5)的 MTU 设置为至少 9000。

为链路聚合配置 MTU 时,请直接在链路聚合接口下配置 MTU 值;成员链路或从属接口会继承配置的值。如果需要在链路聚合上使用不同的 MTU,请在链路聚合接口上设置,因为这可以确保从属接口获取该值。您无需在从属接口上指定 MTU。

VLAN 接口从其物理设备或其较低接口继承其 MTU 设置;例如,swp1.100 从 swp1 继承其 MTU 设置。因此,在 swp1 上指定 MTU 可确保 swp1.100 继承 swp1 的 MTU 设置。

如果您正在使用 VXLAN,则虚拟网络接口 (VNI) 的 MTU 必须比交换机上物理接口的 MTU 小 50 个字节,因为各种标头和其他数据需要这 50 个字节。此外,请考虑将 MTU 设置为远高于 1500。

要显示接口的 MTU 设置

cumulus@switch:~$ nv show interface swp1
...
link                                                            
  auto-negotiate          off                           on      
  duplex                  full                          full    
  speed                   1G                            auto    
  mac-address             48:b0:2d:c8:bb:07                     
  fec                                                   auto    
  mtu                     9216                          9216    
...
cumulus@switch:~$ ip link show dev swp1
3: swp1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9216 qdisc pfifo_fast state UP mode DEFAULT qlen 500
   link/ether 44:38:39:00:03:c1 brd ff:ff:ff:ff:ff:ff

丢弃超出出口第 3 层 MTU 的数据包

交换机转发 MTU 值范围内出口第 3 层接口的所有数据包。但是,当数据包大小大于 MTU 值时,交换机会分片设置 DF 位的数据包,并丢弃设置 DF 位的数据包。

运行以下命令以丢弃所有大小大于出口第 3 层接口 MTU 值的数据包,而不是分片数据包

cumulus@switch:~$ nv set system control-plane trap l3-mtu-err state off
cumulus@switch:~$ nv config apply
cumulus@switch:~$ echo "0 >" /cumulus/switchd/config/trap/l3-mtu-err/enable

FEC

FEC 是一种编码和解码层,使交换机能够检测和纠正两个接口之间电缆上引入的误码。高速以太网链路上的目标 IEEE BER 为 10-12。由于 25G 传输速度可能会在链路上引入高于可接受水平的 BER,因此通常需要 FEC 来纠正错误,以在 25G、4x25G、100G 和更高的链路速度下实现目标 BER。电缆或模块的类型和等级以及传输介质决定了必要的 FEC 设置。

为了使链路建立,每一端的两个接口必须使用相同的 FEC 设置。

FEC 需要较小的延迟开销。对于大多数应用,这种少量延迟优于错误数据包重传延迟。

两种 FEC 类型为

  • 里德-所罗门 (RS),IEEE 802.3 Clause 108 (CL108) 在单个 25G 通道上,Clause 91 在 100G(4 通道)上。这是最高的 FEC 算法,可提供最佳的误码纠正。
  • Base-R (BaseR),火码 (FC),IEEE 802.3 Clause 74 (CL74)。Base-R 提供的误码保护不如 RS FEC,但增加的延迟更少。

Cumulus Linux 包括其他 FEC 选项

  • 自动 FEC 指示硬件选择最佳 FEC。对于铜缆 DAC,远程端可以协商 FEC。但是,光模块不具有自动协商功能;如果设备选择首选模式,则可能与远程端不匹配。这是 NVIDIA Spectrum 交换机上的当前默认设置。
  • FEC(无错误纠正)。

虽然自动 FEC 是 NVIDIA Spectrum 交换机上的默认设置,但不要在交换机上显式配置 fec auto 选项,因为这会在您运行 net commitifreload -a 时导致链路抖动。

对于25G DAC、4x25G 分支 DAC 和 100G DAC 电缆,IEEE 802.3by 规范创建了 3 个等级

  • CA-25G-L(长电缆)- 需要 RS FEC - 可实现的电缆长度至少为 5m。dB 损耗小于或等于 22.48。在未启用 RS FEC 的情况下,预期 BER 为 10-5 或更好。
  • CA-25G-S(短电缆)- 需要 Base-R FEC - 可实现的电缆长度至少为 3m。dB 损耗小于或等于 16.48。在未启用 Base-R FEC 的情况下,预期 BER 为 10-8 或更好。
  • CA-25G-N(无 FEC)- 不需要 FEC - 可实现的电缆长度至少为 3m。dB 损耗小于或等于 12.98。在未启用 FEC 的情况下,预期 BER 为 10-12 或更好。

IEEE 分类指定了各种 dB 损耗测量值和最小可实现电缆长度。如果电缆符合 dB 损耗和 BER 要求,则可以构建更长和更短的电缆。

如果电缆具有 CA-25G-S 分类且 FEC 未开启,则 BER 在生产网络中可能无法接受。根据电缆等级(或更好)设置 FEC 以获得可接受的误码率非常重要。请参阅下面的 确定电缆等级

您可以在大量流量通过链路后,使用 cl-netstatRX_ERR 列)或 ethtool -SHwIfInErrors 计数器)检查误码。非零值表示误码。与好数据包相比,预期错误数据包为零或极低。如果电缆在启用 FEC 的情况下具有不可接受的错误率,请更换电缆。

对于25G、4x25G 分支和 100G 光纤模块和 AOC,没有针对 dB 损耗、BER 或长度的 25G 电缆类型分类。如果 BER 足够低,则使用 FEC。

100G 和 25G DAC 的电缆等级

您可以从电缆 EEPROM 编程中的扩展规范合规性代码字段(SFP28:0Ah,字节 35,QSFP28:页 0,字节 192)确定 100G 和 25G DAC 的电缆等级。

对于 100G DAC,大多数制造商使用 0x0Bh 100GBASE-CR4 或 25GBASE-CR CA-L 值(100G DAC 规范早于 IEEE 802.3by 25G DAC 规范)。对 100G DAC 使用 RS FEC;较短或更好的电缆可能不需要此设置。

制造商的 EEPROM 设置可能与电缆上的 dB 损耗或特定电缆引入的实际误码率不匹配。使用指定作为指南,但根据网络设计标准中的误码率容限设置 FEC。对于大多数应用,两个终端设备最高的共同 FEC 能力是最佳选择。

您可以确定制造商将电缆指定为哪个等级,如下所示。

对于 SFP28 DAC,运行以下命令

cumulus@switch:~$ sudo ethtool -m swp1 hex on | grep 0020 | awk '{ print $6}'
0c

位置 0x0024 的值为

  • 0x0b:CA-L(长电缆 - 需要 RS FEC)
  • 0x0c:CA-S(短电缆 - 需要 Base-R 或更好的 FEC)
  • 0x0d:CA-N(不需要 FEC)

对于 QSFP28 DAC,运行以下命令

cumulus@switch:~$ sudo ethtool -m swp1s0 hex on | grep 00c0 | awk '{print $2}'
0b

0x00c0 的值为

  • 0x0b:CA-L(长电缆 - 需要 RS FEC)或 100G CR4
  • 0x0c:CA-S(短电缆 - 需要 Base-R 或更好的 FEC)
  • 0x0d:CA-N(不需要 FEC)

在下面的每个示例中,合规性字段来自上述方法;ethool -m 输出不显示它。

3meter cable that does not require FEC
(CA-N)
Cost: More expensive
Cable size: 26AWG (Note that AWG does not necessarily correspond to overall dB loss or BER performance)
Compliance Code: 25GBASE-CR CA-N

3meter cable that requires Base-R FEC
(CA-S)
Cost: Less expensive
Cable size: 26AWG
Compliance Code: 25GBASE-CR CA-S

如有疑问,请直接咨询制造商以确定电缆分类。

Spectrum ASIC FEC 行为

Spectrum ASIC 中的固件根据电缆类型以及对等交换机是否也具有 Spectrum ASIC 将 FEC 配置应用于 25G 和 100G 电缆。

当链路在具有 Spectrum ASIC 的两台交换机之间时

  • 对于 25G 光模块,Spectrum ASIC 固件选择 Base-R/FC-FEC。
  • 对于衰减小于或等于 16db 的 25G DAC 电缆,固件选择 Base-R/FC-FEC。
  • 对于衰减高于 16db 的 25G DAC 电缆,固件选择 RS-FEC。
  • 对于 100G 电缆/模块,固件选择 RS-FEC。
电缆类型
FEC 模式
25G 光缆Base-R/FC-FEC
25G 1,2 米:CA-N,损耗 <13dbBase-R/FC-FEC
25G 2.5,3 米:CA-S,损耗 <16dbBase-R/FC-FEC
25G 2.5,3,4,5 米:CA-L,损耗 > 16dbRS-FEC
100G DAC 或光纤RS-FEC

当链接到非 Spectrum 对等设备时,固件让对等设备决定。Spectrum ASIC 支持 RS-FEC(适用于 100G 和 25G)、Base-R/FC-FEC(仅限 25G)或无 FEC(适用于 100G 和 25G)。

电缆类型
FEC 模式
25G 光缆让对等设备决定
25G 1,2 米:CA-N,损耗 <13db让对等设备决定
25G 2.5,3 米:CA-S,损耗 <16db让对等设备决定
25G 2.5,3,4,5 米:CA-L,损耗 > 16db让对等设备决定
100G让对等设备决定:RS-FEC 或无 FEC

Cumulus Linux 如何使用 FEC?

Spectrum 交换机在加电时自动启用 FEC。端口固件测试并确定正确的 FEC 模式以建立与邻居的链路。即使在远程设备上未启用 FEC,交换机也可能建立链路,因为交换机最终会找到与邻居配合使用的组合而无需 FEC。

以下部分介绍如何显示当前 FEC 模式,以及如何启用和禁用 FEC。

显示当前 FEC 模式

要在交换机端口上显示 FEC 模式,请运行 NVUE nv show interface <interface> link 命令。

cumulus@switch:~$ nv show interface swp1 link
                       operational        applied
---------------------  -----------------  -------
admin-status           up                        
oper-status            up                        
protodown              disabled                  
auto-negotiate         off                on     
duplex                 full               full   
speed                  1G                 auto   
fec                                       auto
...

启用或禁用 FEC

要在链路上启用里德-所罗门 (RS) FEC

cumulus@switch:~$ nv set interface swp1 link fec rs
cumulus@switch:~$ nv config apply

编辑 /etc/network/interfaces 文件,然后运行 ifreload -a 命令。以下示例为 swp1 接口启用 RS FEC (link-fec rs)

cumulus@switch:~$ sudo nano /etc/network/interfaces

auto swp1
iface swp1
    link-autoneg off
    link-speed 100000
    link-fec rs
cumulus@switch:~$ sudo ifreload -a

运行时配置(高级)

运行 ethtool --set-fec <interface> encoding RS 命令。例如

cumulus@switch:~$ sudo ethtool --set-fec swp1 encoding RS

运行时配置是非持久性的。您创建的配置在您重新启动交换机后不会保留。

要在链路上启用 Base-R/FireCode FEC

cumulus@switch:~$ nv set interface swp1 link fec baser
cumulus@switch:~$ nv config apply

编辑 /etc/network/interfaces 文件,然后运行 ifreload -a 命令。以下示例为 swp1 接口启用 Base-R FEC (link-fec baser)

cumulus@switch:~$ sudo nano /etc/network/interfaces

auto swp1
iface swp1
    link-autoneg off
    link-speed 100000
    link-fec baser
cumulus@switch:~$ sudo ifreload -a

运行时配置(高级)

运行 ethtool --set-fec <interface> encoding baser 命令。例如

cumulus@switch:~$ sudo ethtool --set-fec swp1 encoding BaseR

运行时配置是非持久性的。您创建的配置在您重新启动交换机后不会保留。

要启用带有自动协商的 FEC

您只能在 DAC 上将 FEC 与自动协商结合使用。

cumulus@switch:~$ nv set interface swp1 link auto-negotiate on
cumulus@switch:~$ nv config apply

编辑 /etc/network/interfaces 文件以将自动协商设置为开启,然后运行 ifreload -a 命令

cumulus@switch:~$ sudo nano /etc/network/interfaces

auto swp1
iface swp1
link-autoneg on
cumulus@switch:~$ sudo ifreload -a

运行时配置(高级)

您可以使用 ethtool 启用带有自动协商的 FEC。例如

ethtool -s swp1 speed 10000 duplex full autoneg on

运行时配置是非持久性的。您创建的配置在您重新启动交换机后不会保留。

要显示接口的 FEC 和自动协商设置,请运行 NVUE nv show interface <interface> link 命令或 Linux sudo ethtool swp1 | egrep 'FEC|auto' 命令

cumulus@switch:~$ sudo ethtool swp1 | egrep 'FEC|auto'
Supports auto-negotiation: Yes
Supported FEC modes: RS
Advertised auto-negotiation: Yes
Advertised FEC modes: RS
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported

要在链路上禁用 FEC

cumulus@switch:~$ nv set interface swp1 link fec off
cumulus@switch:~$ nv config apply

要将 FEC 配置为默认值,请运行 nv unset interface swp1 link fec 命令。

编辑 /etc/network/interfaces 文件,然后运行 ifreload -a 命令。以下示例为 swp1 接口禁用 Base-R FEC (link-fec baser)

cumulus@switch:~$ sudo nano /etc/network/interfaces

auto swp1
iface swp1
link-fec off
cumulus@switch:~$ sudo ifreload -a

运行时配置(高级)

运行 ethtool --set-fec <interface> encoding off 命令。例如

cumulus@switch:~$ sudo ethtool --set-fec swp1 encoding off

运行时配置是非持久性的。您创建的配置在您重新启动交换机后不会保留。

DR1 和 DR4 模块

100GBASE-DR1 模块(例如 NVIDIA MMS1V70-CM)包括内部 RS FEC 处理,软件无法控制。使用这些光模块时,您必须将 FEC 设置为 off 或将其保持未设置状态,链路才能正常工作。

400GBASE-DR4 模块(例如 NVIDIA MMS1V00-WM)需要 RS FEC。如果 FEC 设置为 off,交换机会自动启用 FEC。

您通常使用这些光模块将 4x SN2700 上行链路互连到单个 SN4700 分支下行链路。以下配置显示了显式 FEC 示例。您可以将 FEC 设置保持未设置状态以进行自动检测。

SN4700(swp1 中的 400GBASE-DR4)

cumulus@SN4700:mgmt:~$ nv set interface swp1 link breakout 4x lanes-per-port 2
cumulus@SN4700:mgmt:~$ nv set interface swp1s0 link fec rs
cumulus@SN4700:mgmt:~$ nv set interface swp1s0 link speed 100G
cumulus@SN4700:mgmt:~$ nv set interface swp1s1 link fec rs
cumulus@SN4700:mgmt:~$ nv set interface swp1s1 link speed 100G
cumulus@SN4700:mgmt:~$ nv set interface swp1s2 link fec rs
cumulus@SN4700:mgmt:~$ nv set interface swp1s2 link speed 100G
cumulus@SN4700:mgmt:~$ nv set interface swp1s3 link fec rs
cumulus@SN4700:mgmt:~$ nv set interface swp1s3 link speed 100G
cumulus@SN4700:mgmt:~$ nv config apply

SN2700(swp11-14 中的 100GBASE-DR1)

cumulus@SN2700:mgmt:~$ nv set interface swp11 link fec off
cumulus@SN2700:mgmt:~$ nv set interface swp11 link speed 100G
cumulus@SN2700:mgmt:~$ nv set interface swp12 link fec off
cumulus@SN2700:mgmt:~$ nv set interface swp12 link speed 100G
cumulus@SN2700:mgmt:~$ nv set interface swp13 link fec off
cumulus@SN2700:mgmt:~$ nv set interface swp13 link speed 100G
cumulus@SN2700:mgmt:~$ nv set interface swp14 link fec off
cumulus@SN2700:mgmt:~$ nv set interface swp14 link speed 100G
cumulus@SN4700:mgmt:~$ nv config apply

此配置的 FEC 运行视图显示不正确,因为 FEC 仅在 SN4700 400G 分支侧以运行方式启用。这是因为 100G DR1 模块侧在内部处理 FEC,Cumulus Linux 看不到它。

cumulus@SN2700:mgmt:~$ nv show int swp11 link
                       operational        applied
---------------------  -----------------  -------
auto-negotiate         on                 on     
duplex                 full               full   
speed                  100G               auto   
fec                    off                off   
mtu                    9216               9216   
fast-linkup            off                       
[breakout]                                       
state                  up                 up     
...
cumulus@SN4700:mgmt:~$ nv show int swp1s1 link
                       operational        applied
---------------------  -----------------  -------
auto-negotiate         on                 on     
duplex                 full               full   
speed                  100G               auto   
fec                    rs                 off    
mtu                    9216               9216   
fast-linkup            off                       
[breakout]                                       
state                  up                 up     
...

接口设置的默认策略

您可以为交换机上的所有接口指定策略,或者为每个接口定制自定义设置,而不是为每个单独的接口配置设置。在 /etc/network/ifupdown2/policy.d/ 中创建一个文件,并相应地填充设置。以下示例显示了一个名为 address.json 的文件。

cumulus@switch:~$ cat /etc/network/ifupdown2/policy.d/address.json
{
    "ethtool": {
        "defaults": {
            "link-duplex": "full"
        },
        "iface_defaults": {
            "swp1": {
                "link-autoneg": "on",
                "link-speed": "1000"
          },
            "swp16": {
                "link-autoneg": "off",
                "link-speed": "10000"
            },
            "swp50": {
                "link-autoneg": "off",
                "link-speed": "100000",
                "link-fec": "rs"
            }
        }
    },
    "address": {
        "defaults": { "mtu": "9000" },
        "iface_defaults": {
            "eth0": {"mtu": "1500"}
        }
    }
}

设置默认 MTU 也适用于管理接口。请务必添加 iface_defaults 以覆盖 eth0 的 MTU,使其保持在 9216。

分支端口

Cumulus Linux 支持以下端口分支选项

18x SFP28 25G 和 4x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

所有 4x QSFP28 端口都可以分支为 4x SFP28 或 2x QSFP28。

  • 18x 1G - 18x SFP28 设置为 1G
  • 16x 1G - 4x QSFP28 配置为 4x 分支并设置为 1G

最大 1G 端口数:34

  • 18x 10G - 18x SFP28 设置为 10G
  • 16x 10G - 4x QSFP28 配置为 4x 分支并设置为 10G

最大 10G 端口数:34

  • 18x 25G - 18x SFP28(原生速度)
  • 16x 25G - 4x QSFP28 分支为 4x 并设置为 25G

最大 25G 端口数:34

4x 40G - 4x QSFP28 设置为 40G

最大 40G 端口数:4

8x 50G - 4x QSFP28 分支为 2x 并设置为 50G

最大 50G 端口数:8

4x 100G - 4x QSFP28(原生速度)

最大 100G 端口数:4

16x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

所有 QSFP28 端口都可以分支为 4x SFP28 或 2x QSFP28。

64x 1G - 16x QSFP28 分支为 4x 并设置为 1G

最大 1G 端口数:64

64x 10G - 16x QSFP28 分支为 4x 并设置为 10G

最大 10G 端口数:64

64x 25G - 16x QSFP28 分支为 4x 并设置为 25G

最大 25G 端口数:64

16x 40G - 4x QSFP28 设置为 40G

最大 40G 端口数:16

32x 50G - 16x QSFP28 分支为 2x 并设置为 50G

最大 50G 端口数:32

16x 100G - 16x QSFP28(原生速度)

最大 100G 端口数:16

48x 1GBase-T 端口(RJ45,最长 100 米 CAT5E/6)和 4x QSFP28 100G 接口(仅支持 NRZ 编码)。您可以将所有速度设置为低至 1G。

所有 4x QSFP28 端口都可以分支为 4x SFP28 或 2x QSFP28。

  • 48x 1GBase-T - 48x Base-T 设置为 1G。您也可以将它们设置为 10/100Mb。
  • 16x 1G - 4x QSFP28 配置为 4x 分支并设置为 1G

最大 10/100MBase-T 端口数:48 最大 1GBase-T 端口数:48 最大 1G 端口数:16

  • 16x 10G - 4x QSFP28 配置为 4x 分支并设置为 10G

最大 10G 端口数:16

  • 16x 25G - 4x QSFP28 分支为 4x 并设置为 25G

最大 25G 端口数:16

4x 40G - 4x QSFP28 设置为 40G

最大 40G 端口数:4

8x 50G - 4x QSFP28 分支为 2x

最大 50G 端口数:8

4x 100G - 4x QSFP28(原生速度)

最大 100G 端口数:4

48x SFP28 25G 和 8x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

顶部 4x QSFP28 端口可以分支为 4x SFP28。您不能使用底部 4x QSFP28 禁用端口。

所有 8x QSFP28 端口都可以分支为 2x QSFP28,而无需禁用端口。

  • 48x 1G - 48x SFP28 设置为 10G
  • 16x 1G - 4x QSFP28 分支为 4x 并设置为 1G

最大 1G 端口数:64

  • 48x 10G - 48x SFP28 设置为 10G
  • 16x 10G - 4x QSFP28 分支为 4x 并设置为 10G

最大 10G 端口数:64

  • 48x 25G - 48x SFP28(原生速度)
  • 16x 25G - 顶部 4x QSFP28 分支为 4x(底部 4x QSFP28 禁用)

最大 25G 端口数:64

8x 40G - 8x QSFP28 设置为 40G

最大 40G 端口数:8

16x 50G - 8x QSFP28 分支为 2x

最大 50G 端口数:16

8x 100G - 8x QSFP28(原生速度)

最大 100G 端口数:8

32x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

顶部 16x QSFP28 端口可以分支为 4x SFP28。您不能使用底部 4x QSFP28 禁用端口。

所有 32x QSFP28 端口都可以分支为 2x QSFP28,而无需禁用端口。

64x 1G - 顶部 16x QSFP28 分支为 4x 并设置为 1G(底部 16XQSFP28 禁用)

最大 1G 端口数:64

64x 10G - 顶部 16x QSFP28 分支为 4x 并设置为 10G(底部 16x QSFP28 禁用)

最大 10G 端口数:64

64x 25G - 顶部 16x QSFP28 分支为 4x(底部 16x QSFP28 禁用)

最大 25G 端口数:64

32x 40G - 32x QSFP28 设置为 40G

最大 40G 端口数:32

64x 50G - 64x QSFP28 分支为 2x

最大 50G 端口数:64

32x 100G - 32x QSFP28(原生速度)

最大 100G 端口数:32

48x SFP28 25G 和 12x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

所有 12x QSFP28 端口都可以分支为 4x SFP28 或 2x QSFP28。

  • 48x 1G - 48XSFP28 设置为 1G
  • 48x 1G - 12XQSFP28 分支为 4x 并设置为 1G

最大 1G 端口数:96

  • 48x 10G - 48x SFP28 设置为 10G
  • 48x 10G - 12x QSFP28 分支为 4x 并设置为 10G

最大 10G 端口数:96

  • 48x 25G - 48x SFP28(原生速度)
  • 48x 25G - 12x QSFP28 分支为 4x

最大 25G 端口数:96

12x 40G - 12x QSFP28 设置为 40G

最大 40G 端口数:12

24x 50G - 12x QSFP28 分支为 2x

最大 50G 端口数:24

12x 100G - 12x QSFP28(原生速度)

最大 100G 端口数:12

32x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

所有 32x QSFP28 端口都可以分支为 4x SFP28 或 2x QSFP28。

128x1G - 32XQSFP28 分支为 4x 并设置为 1G

最大 1G 端口数:128

128x 10G - 32x QSFP28 分支为 4x 并设置为 10G

最大 10G 端口数:128

128x25G - 32x QSFP28 分支为 4x

最大 25G 端口数:128

32x 40G - 32x QSFP28 设置为 40G

最大 40G 端口数:32

64x 50G - 32x QSFP28 分支为 2x

最大 50G 端口数:64

32x 100G - 32x QSFP28(原生速度)

最大 100G 端口数:32

32x QSFP56 200G 接口支持 PAM4 和 NRZ 编码。您可以将所有速度设置为低至 1G。

对于较低速度的接口配置,PAM4 会自动转换为 NRZ 编码。

所有 32x QSFP56 端口都可以分支为 4xSFP56 或 2x QSFP56。

128x 1G - 32XQSFP56 分支为 4x 并设置为 1G

最大 1G 端口数:128

128x 10G - 32x QSFP56 分支为 4x 并设置为 10G

最大 10G 端口数:128

128x 25G - 32x QSFP56 分支为 4x 并设置为 25G

最大 25G 端口数:128

32x 40G - 32x QSFP56 设置为 40G

最大 40G 端口数:32

128x 50G - 32x QSFP56 分支为 4x

最大 50G 端口数:128

64x100G - 32x QSFP56 分支为 2x

最大 100G 端口数:64

32x 200G - 32x QSFP56(原生速度)

最大 200G 端口数:32

SN4410 24xQSFP28-DD 接口 [端口 1-24] 支持 PAM4 和 NRZ 编码,所有速度从 200G 降至 1G。

8xQSFP-DD (400GbE) 接口 [端口 25-32] 支持 PAM4 和 NRZ 编码,所有速度从 400G 降至 1G。

对于较低速度,PAM4 会自动转换为 NRZ 编码。

您可以将端口 #1 到 #32 拆分为

  • 2x 端口,具有 PAM 4 和 NRZ 编码,没有限制。
  • 4x 端口,具有 PAM 4 和 NRZ 编码,没有限制。
  • 8x 端口,具有 PAM 4 和 NRZ 编码,但这会强制阻止相邻端口(MAC 地址总可用数量为 128)
  • 96x 1G - 24XQSFP28-DD 分支为 4x 并设置为 1G
  • 32x 1G - 顶部 4XQSFP-DD 分支为 8x 并设置为 1G(底部 4XQSFP-DD 阻止*)

最大 1G 端口数:128

  • 96x 10G - 24xQSFP28-DD 分支为 4x 并设置为 10G
  • 32x 10G - 顶部 4 个 QSFP-DD 分支为 8x 并设置为 10G(底部 4xQSFP-DD 阻止*)

最大 10G 端口数:128

*其他 QSFP-DD 分支组合最多可达 128 个端口。

  • 96x 25G - 24xQSFP28-DD 分支为 4x
  • 32x 25G - 顶部 4 个 QSFP-DD 分支为 8x 并设置为 25G(底部 4xQSFP-DD 阻止*)

最大 25G 端口数:128

*其他 QSFP-DD 分支组合最多可达 128 个端口。

  • 48x 40G - 24xQSFP28-DD 分支为 2x 并设置为 40G
  • 16x 40G – 8xQSFP-DD 分支为 2x 并设置为 40G

最大 40G 端口数:64

  • 96x 50G - 24xQSFP28-DD/QSFP56 分支为 4x
  • 32x 50G - 8xQSFP-DD 分支为 4x

最大 50G 端口数:128

  • 96x 100G - 24xQSFP28-DD/QSFP56 分支为 4x
  • 32x 100G - 8xQSFP-DD 分支为 4x

最大 100G 端口数:128

  • 48x 200G - 24xQSFP28-DD/QSFP56 分支为 2x
  • 16x 200G - 8xQSFP-DD 分支为 2x

最大 200G 端口数:64

8x400G - 8xQSFP-DD(原生速度)

最大 400G 端口数:8

64x QSFP28 100G 接口仅支持 NRZ 编码。您可以将所有速度设置为低至 1G。

只有 32x QSFP28 端口可以分解为 4x SFP28。您必须禁用相邻的 QSFP28 端口。只有第一行和第三行或第二行和第四行可以分解为 4x SFP28。

所有 64x QSFP28 端口都可以分解为 2x QSFP28,而无需禁用端口。

128x 1G - 32x QSFP28 分解为 4x 并设置为 1G

最大 1G 端口数:128

128x 10G - 32x QSFP28 分支为 4x 并设置为 10G

最大 10G 端口数:128

128x 25G - 32x QSFP28 分解为 4x

最大 25G 端口数:128

64x 40G - 64x QSFP28 设置为 40G

最大 40G 端口数:64

128x 50G - 64x QSFP28 分解为 2x

最大 50G 端口数:128

64x 100G - 64x QSFP28 (原生速度)

最大 100G 端口数:64

SN4600 64x QSFP56 (200GbE) 接口支持 PAM4 和 NRZ 编码,所有速度均可设置为低至 1G。

对于较低速度,PAM4 会自动转换为 NRZ 编码。

只有 32x QSFP56 端口可以分解为 4x SFP56 (4x 50GbE)。但是,在这种情况下,相邻的 QSFP56 端口将被阻止(只有第一行和第三行或第二行和第四行可以分解为 4x SFP56)。

所有 64x QSFP56 端口都可以分解为 2x QSFP56 (2x 100GbE),而不会阻止端口。

128x 1G - 32XQSFP56 分支为 4x 并设置为 1G

最大 1G 端口数:128

128x 10G - 64x QSFP56 分解为 4x 并设置为 10G

最大 10G 端口数:128

128x 25G - 64x QSFP56 分解为 4x 并设置为 25G

最大 25G 端口数:128

64x 40G - 64x QSFP56 设置为 40G

最大 40G 端口数:64

128x 50G - 32x QSFP56 分解为 4x

最大 50G 端口数:128

  • 128x 100G - 64x QSFP56 分解为 2x
  • 64x 100G - 64x QSFP28 设置为 100G

最大 100G 端口数:128

64x 200G - 64x QSFP56 (原生速度)

最大 200G 端口数:64

SN4700 32x QSFP-DD 400GbE 接口支持 PAM4 和 NRZ 编码。您可以将所有速度设置为低至 1G。

对于较低速度的接口配置,PAM4 会自动转换为 NRZ 编码。

只有顶部的 16x QSFP-DD 端口可以分解为 8x SFP56。您必须禁用相邻的 QSFP-DD 端口。

所有 32x QSFP-DD 端口都可以分解为 2x QSFP56 (2x 200G) 或 4x QSFP56 (4x 100G),而无需禁用端口。

128x 1G - 顶部 16x QSFP-DD 分解为 8x 并设置为 1G

最大 1G 端口数:128

128x 10G - 16x QSFP-DD 分解为 8x 并设置为 10G

最大 10G 端口数:128

*Cumulus Linux 支持其他 QSFP-DD 分解组合,最多可达 128x 端口。

128x 25G - 16x QSFP-DD 分解为 8x 并设置为 25G

最大 25G 端口数:128

*Cumulus Linux 支持其他 QSFP-DD 分解组合,最多可达 128x 端口。

32x 40G - 32x QSFP-DD 设置为 40G

最大 40G 端口数:32

128x 50G - 16x QSFP-DD 分解为 8x

最大 50G 端口数:128

*Cumulus Linux 支持其他 QSFP-DD 分解组合,最多可达 128x 端口。

128x 100G - 32x QSFP-DD 分解为 4x

最大 100G 端口数:128

64x 200G - 64x QSFP-DD 分解为 2x

最大 200G 端口数:64

32x 400G - 32x QSFP-DD (原生速度)

最大 400G 端口数:32

SN5400 64x QSFP-DD (400GbE) 接口支持 PAM4 和 NRZ 编码,所有速度均可设置为低至 10G。

对于较低速度,PAM4 会自动转换为 NRZ 编码。

附加端口 #65 和 #66 支持 1G、10G 和 25G,但不支持分解。

最大 1G 端口数:2(附加端口)

258x 10G

最大 10G 端口数:258(64 个端口分解为 4x + 2 个附加端口)

258x 25G

最大 25G 端口数:258(64 个端口分解为 4x + 2 个附加端口)

最大 40G 端口数:128

256x 50G

最大 50G 端口数:256(32 个奇数端口分解为 8x)

256x 100G

最大 100G 端口数:256(64 个端口分解为 4x)

128x 200G

最大 200G 端口数:128(64 个端口分解为 2x)

最大 400G 端口数:64

SN5600 64x OSFP (800GbE) 接口支持 PAM4 和 NRZ 编码,所有速度均可设置为低至 10G。

对于较低速度,PAM4 会自动转换为 NRZ 编码。

附加端口 #65 支持 1G、10G 和 25G,但不支持分解。

最大 1G 端口数:1(附加端口)

256x 10G

最大 10G 端口数:257(256 + 1 个附加端口)

256x 25G

最大 25G 端口数:257(256 + 1 个附加端口)

128x 40G

最大 40G 端口数:128

256x 50G - 32x OSFP 分解为 8x - 您必须禁用相邻的 OSFP 端口。

最大 50G 端口数:256

256x 100G - 32x OSFP 分解为 8x - 您必须禁用相邻的 OSFP 端口。

最大 100G 端口数:256

256x 200G - 64x OSFP 分解为 4x

最大 200G 端口数:256

128x 400G - 64x OSFP 分解为 2x

最大 400G 端口数:128

64x 800G

最大 800G 端口数:64

  • 您可以使用 *QSFP-to-SFP 适配器* (QSA) 在 QSFP (100/200/400G) 端口中使用单个 SFP (10/25/50G) 收发器。使用 `nv set interface <interface> link speed <speed>` 命令将端口速度设置为 SFP 速度。请勿将此端口配置为分解端口。
  • 如果您分解端口,然后在以 *nonatomic* ACL 模式运行的交换机上重新加载 `switchd` 服务,则在重新安装 ACL 时会发生临时流量中断。
  • Cumulus Linux 不支持端口聚合。

配置分解端口

您可以使用以下选项分解(拆分)端口

  • `1x` 不拆分端口。这是默认端口设置。
  • `2x` 将端口拆分为两个接口。
  • `4x` 将端口拆分为四个接口。
  • `8x` 将端口拆分为八个接口。

如果您将 100G 端口拆分为四个接口,并且自动协商已开启(默认设置),则 Cumulus Linux 会为每个接口通告速度,最高可达 100G 端口的最大可能速度 (100/4=25G)。如有必要,您可以覆盖此配置并为拆分端口设置特定速度。

  • Cumulus Linux 5.4 及更高版本使用新的端口拆分格式;您指定 1=1x 或 1=4x,而不是 1=100G 或 1=4x10G。新格式不支持在 `/etc/cumulus/ports.conf` 文件中为分解端口指定速度。要设置速度,请在 `/etc/network/interfaces` 文件中为每个拆分端口设置 `link-speed` 参数,或者运行 NVUE `nv set interface <interface> link speed <speed>` 命令。

以下示例将 swp1 上的 100G 端口分解为四个接口。Cumulus Linux 会为每个接口通告速度,最高可达 25G

cumulus@switch:~$ nv set interface swp1 link breakout 4x
cumulus@switch:~$ nv set interface swp1s0-3 link state up
cumulus@switch:~$ nv config apply

以下示例将端口拆分为四个接口,并将链路速度强制设置为 10G。当您强制设置速度时,Cumulus 会禁用自动协商。

cumulus@switch:~$ nv set interface swp1 link breakout 4x
cumulus@switch:~$ nv set interface swp1s0-3 link state up
cumulus@switch:~$ nv set interface swp1s0-3 link speed 10G

某些交换机,例如 SN2700、SN4600 和 SN4600c,要求您在为 4x 或 8x 配置分解端口时禁用后续的偶数端口。对于任何有此要求的交换机,NVUE 都会自动禁用后续的偶数端口。

  1. 要将端口拆分为多个接口,请编辑 `/etc/cumulus/ports.conf` 文件。以下示例命令将 swp1 分解为四个接口。

    cumulus@switch:~$ sudo cat /etc/cumulus/ports.conf
    ...
    1=4x 
    2=disabled 
    3=1x 
    4=1x 
    ...
    

当您在某些交换机(例如 SN2700、SN4600 和 SN4600c)上将分解端口配置为 4x 或 8x 时,您必须在 `/etc/cumulus/ports.conf` 文件中将后续的偶数端口设置为 `disabled`。SN3700、SN3700c、SN2201、SN2010 和 SN2100 交换机没有此要求。

  1. 使用 `sudo systemctl reload switchd.service` 命令重新加载 `switchd`。重新加载**不会**中断网络服务。

    cumulus@switch:~$ sudo systemctl reload switchd.service
    
  2. 要为拆分端口配置特定速度,请编辑 `/etc/network/interfaces` 文件,然后运行 `ifreload -a` 命令。以下示例将每个 swp1 分解端口(swp1s0、swp1s1、swp1s2 和 swp1s3)的速度配置为 10G,并关闭自动协商。

cumulus@switch:~$ sudo cat /etc/network/interfaces
...
auto swp1s0
iface swp1s0
    link-speed 10000 
    link-duplex full 
    link-autoneg off
auto swp1s1
iface swp1s1
    link-speed 10000 
    link-duplex full 
    link-autoneg off
auto swp1s2
iface swp1s2
    link-speed 10000 
    link-duplex full 
    link-autoneg off
auto swp1s3
iface swp1s3
    link-speed 10000 
    link-duplex full 
    link-autoneg off
...
cumulus@switch:~$ sudo ifreload -a

SN4700 和 SN4410 交换机在 QSFP-DD 400G 收发器模块上不支持自动协商。您需要强制设置速度。

设置每个拆分端口的通道数

默认情况下,为了计算拆分端口宽度,Cumulus Linux 使用公式 `拆分端口宽度 = 完整端口宽度 / 分解`。例如,一个端口拆分为两个接口(2x 分解)=> 8 通道宽度 / 2x 分解 = 每个拆分端口 4 个通道。

如果您需要使用与默认端口宽度不同的端口宽度,您可以设置每个端口的通道数。

以下示例命令将 swp1 拆分为两个接口 (2x),并将每个拆分端口的通道数设置为 2。

cumulus@switch:~$ nv set interface swp1 link breakout 2x lanes-per-port 2
cumulus@switch:~$ nv config apply

编辑 `/etc/cumulus/ports_width.conf` 文件,并添加您要使用的每个拆分端口的通道数,然后重新加载 `switchd`

cumulus@switch:~$ sudo nano /etc/cumulus/ports_width.conf
...
1=2
2=default
3=default
4=default
5=default
6=default
7=default
8=default
...
cumulus@switch:~$ sudo systemctl reload switchd.service

在 5.9 及更高版本中,QSFP-DD/OSFP 8 通道端口上的 4x 分解默认分配每个端口两个通道,而不是一个通道。请务必将连接两端的每个端口的通道数配置为相同。

移除分解端口

要移除分解端口

  1. 运行 `nv unset interface <interface>` 命令。例如

    cumulus@switch:~$ nv unset interface swp1s0
    cumulus@switch:~$ nv unset interface swp1s1
    cumulus@switch:~$ nv unset interface swp1s2
    cumulus@switch:~$ nv unset interface swp1s3
    cumulus@switch:~$ nv config apply
    
  2. 运行 `nv unset interface <interface> link breakout` 命令以将接口配置为原始速度。例如

    cumulus@switch:~$ nv unset interface swp1 link breakout
    cumulus@switch:~$ nv config apply
    
  1. 编辑 `/etc/cumulus/ports.conf` 文件以将接口配置为原始速度。

    cumulus@switch:~$ sudo nano /etc/cumulus/ports.conf
    ...
    1=1x 
    2=1x 
    3=1x 
    4=1x 
    ...
    
  2. 重新加载 `switchd`。重新加载**不会**中断网络服务。

    cumulus@switch:~$ sudo systemctl reload switchd.service
    
  3. 从 `/etc/network/interfaces` 文件中删除分解接口配置,然后运行 `ifreload -a` 命令。

配置端口通道

您可以覆盖支持的速度和平台的默认行为,并为端口指定通道数。例如,对于 NVIDIA SN4700 交换机,默认端口速度为 50G(2 通道,NRZ 信号模式)和 100G(4 通道,NRZ 信号模式)。您可以将此设置覆盖为 50G(1 通道,PAM4 信号模式)和 100G(2 通道,PAM4 信号模式)。

当自动协商开启时,此设置不适用,因为 Cumulus Linux 会在自动协商期间通告所有支持的速度选项,包括 PAM4 和 NRZ。

cumulus@switch:~$ nv set interface swp1 link speed 50G
cumulus@switch:~$ nv set interface swp1 link lanes 1
cumulus@switch:~$ nv config apply 
cumulus@switch:~$ nv set interface swp2 link speed 100G
cumulus@switch:~$ nv set interface swp2 link lanes 2
cumulus@switch:~$ nv config apply
  1. 编辑 /etc/network/interfaces 文件,然后运行 ifreload -a 命令。

    cumulus@switch:~$ sudo nano /etc/network/interfaces
    ...
    auto swp1
    iface swp1
        link-lanes 1
        link-speed 50000
    auto swp2
    iface swp2
        link-lanes 2
        link-speed 100000
    
  2. 运行 `ifreload -a` 命令

    cumulus@switch:~$ sudo ifreload -a
    

ports.conf 文件验证器

Cumulus Linux 包含一个 `ports.conf` 验证器,`switchd` 会在交换机启动前自动运行该验证器,以确认文件语法正确。您可以随时手动运行验证器来验证文件语法。如果您想使用自动化工具将新的 `ports.conf` 文件复制到交换机,然后验证其语法是否正确,则验证器非常有用。

要手动运行验证器,请运行 `/usr/cumulus/bin/validate-ports -f <file>` 命令。例如

cumulus@switch:~$ /usr/cumulus/bin/validate-ports -f /etc/cumulus/ports.conf

故障排除

本节介绍用于排除交换机端口故障的基本命令。有关更全面的故障排除指南,请参阅 Layer 1 故障排除

接口设置

要查看接口的所有设置,请运行 `nv show interface <interface>` 命令

cumulus@switch:~$ nv show interface swp1                          operational        applied
------------------------  -----------------  -------
type                      swp                swp    
[acl]                                               
evpn                                                
  multihoming                                       
    uplink                                   off    
ptp                                                 
  enable                                     off    
router                                              
  adaptive-routing                                  
    enable                                   off    
  ospf                                              
    enable                                   off    
  ospf6                                             
    enable                                   off    
  pbr                                               
    [map]                                           
  pim                                               
    enable                                   off    
synce                                               
  enable                                     off    
ip                                                  
  igmp                                              
    enable                                   off    
  ipv4                                              
    forward                                  on     
  ipv6                                              
    enable                                   on     
    forward                                  on     
  neighbor-discovery                                
    enable                                   on     
    [dnssl]                                         
    home-agent                                      
      enable                                 off    
    [prefix]                                        
    [rdnss]                                         
    router-advertisement                            
      enable                                 off    
  vrrp                                              
    enable                                   off    
  vrf                                        default
  [gateway]                                         
link                                                
  auto-negotiate          off                on     
  duplex                  full               full   
  speed                   1G                 auto   
  fec                                        auto   
  mtu                     9000               9216   
  fast-linkup             off                       
  [breakout]                                        
  state                   up                 up     
  stats                                             
    carrier-transitions   4                         
    in-bytes              600 Bytes                 
    in-drops              5                         
    in-errors             0                         
    in-pkts               10                        
    out-bytes             2.11 MB                   
    out-drops             0                         
    out-errors            0                         
    out-pkts              33143                     
  mac                     48:b0:2d:39:3f:83         
ifindex                   3

您可以添加 `--view` 选项以显示不同的视图

cumulus@switch:~$ nv show interface --view <<TAB>>
acl-statistics  carrier-stats   dot1x-counters  lldp-detail     physical        status          vrf
bond-members    counters        dot1x-summary   mac             port-security   svi             
bonds           description     down            mlag-cc         qos-profile     synce-counters  
brief           detail          lldp            neighbor        small           up

例如,`nv show interface --view=small` 命令列出交换机上的接口。`nv show interface --view=brief` 命令显示有关交换机上每个接口的信息,例如接口类型、速度、远程主机和端口。`nv show interface --view=mac` 命令显示每个接口的 MAC 地址。

仅当您使用 `--view=detail` 选项时,描述列才会显示在输出中。

以下示例显示交换机上每个接口的 MAC 地址

cumulus@switch:~$ nv show interface --view=mac
Interface   State  Speed  MTU    MAC                Type    
----------  -----  -----  -----  -----------------  --------
BLUE        up            65575  2a:f9:b5:3c:74:b8  vrf     
RED         up            65575  8e:91:ed:ed:d5:76  vrf     
bond1       up     1G     9000   48:b0:2d:39:3f:83  bond    
bond2       up     1G     9000   48:b0:2d:b3:5e:18  bond    
bond3       up     1G     9000   48:b0:2d:c2:9d:47  bond    
br_default  up            9216   44:38:39:22:01:7a  bridge  
br_l3vni    up            9216   44:38:39:22:01:7a  bridge  
eth0        up     1G     1500   44:38:39:22:01:7a  eth     
lo          up            65536  00:00:00:00:00:00  loopback
mgmt        up            65575  8a:58:d0:25:47:7d  vrf     
swp1        up     1G     9000   48:b0:2d:39:3f:83  swp     
swp2        up     1G     9000   48:b0:2d:b3:5e:18  swp     
swp3        up     1G     9000   48:b0:2d:c2:9d:47  swp     
swp4        down          1500   48:b0:2d:c2:7e:cd  swp     
swp5        down          1500   48:b0:2d:6e:bc:c1  swp     
swp6        down          1500   48:b0:2d:2d:89:16  swp 
...

以下示例显示交换机上的 bond

cumulus@switch:~$ nv show interface --view=bonds
Interface  Admin Status  Oper Status  Mode  Mlag ID  Lacp-rate  Lacp-bypass  Up-delay  Down-delay  
---------  ------------  -----------  ----  -------  ---------  -----------  --------  ----------  
bond1      up            up                 1        fast       on           50000     40000  
bond2      up            up                 2        fast       on           60000     20000 

您可以根据特定列过滤 `nv show interface` 命令输出。例如,`nv show interface --filter mtu=1500` 仅显示 MTU 设置为 1500 的接口。

要过滤多个列输出,请将过滤器类型括在括号中;例如,`nv show interface --filter "type=bridge&mtu=9216"` 显示 MTU 为 9216 的网桥的数据。

您可以过滤所有修订版本(operational、applied 和 pending);例如,`nv show interface --filter mtu=1500 --rev=applied` 仅显示应用修订版本中 MTU 设置为 1500 的接口。

以下示例显示交换机上配置的所有 MTU 为 9216 的网桥的信息

cumulus@switch:~$ nv show interface --filter "type=bridge&mtu=9216"
Interface   State  Speed  MTU   Type    Remote Host  Remote Port  Summary                                
----------  -----  -----  ----  ------  -----------  -----------  ---------------------------------------
br_default  up            9216  bridge                            IP Address: fe80::4638:39ff:fe22:17a/64
br_l3vni    up            9216  bridge                            IP Address: fe80::4638:39ff:fe22:17a/64

统计信息

要显示接口统计信息,请运行 NVUE `nv show interface <interface> counters` 命令或 Linux `sudo ethtool -S <interface>` 命令。

cumulus@switch:~$ nv show interface swp1 counters
                    operational  applied
-------------------  -----------  -------
carrier-transitions  4                   
in-bytes             3.37 MB             
in-drops             0                   
in-errors            0                   
in-pkts              29025               
out-bytes            4.28 MB             
out-drops            0                   
out-errors           0                   
out-pkts             43945  
...

有关显示和清除接口计数器的更多信息,请参阅 使用 NVUE 监控接口和收发器

SFP 端口信息

要验证 SFP 设置,请运行 NVUE `nv show interface <interface> transceiver` 命令或 `ethtool -m` 命令。以下示例显示 swp1 的供应商、类型和功率输出。

cumulus@switch:~$ nv show interface swp1 transceiver
cable-length           : 3m 
diagnostics-status     : Diagnostic Data Available 
revision-compliance    : SFF-8636 Rev 2.5/2.6/2.7 
vendor-data-code       : 210215__ 
identifier             : QSFP28 
vendor-rev             : B2 
vendor-name            : Mellanox 
vendor-pn              : MFA1A00-C003 
vendor-sn              : MT2108FT02204 
temperature            : 48.93 degrees C / 120.07 degrees F 
voltage                : 3.2744 V 
ch-1-rx-power          : 0.0000 mW / -inf dBm 
ch-1-tx-power          : 0.0000 mW / -inf dBm 
ch-1-tx-bias-current   : 0.000 mA 
ch-2-rx-power          : 0.0000 mW / -inf dBm 
ch-2-tx-power          : 0.0000 mW / -inf dBm 
ch-2-tx-bias-current   : 0.000 mA 
ch-3-rx-power          : 0.0000 mW / -inf dBm 
ch-3-tx-power          : 0.0000 mW / -inf dBm 
ch-3-tx-bias-current   : 0.000 mA 
ch-4-rx-power          : 0.0000 mW / -inf dBm 
ch-4-tx-power          : 0.0000 mW / -inf dBm
ch-4-tx-bias-current   : 0.000 mA
cumulus@switch:~$ sudo ethtool -m swp1 | egrep 'Vendor|type|power\s+:'
Transceiver type                          : 10G Ethernet: 10G Base-LR
Vendor name                               : FINISAR CORP.
Vendor OUI                                : 00:90:65
Vendor PN                                 : FTLX2071D327
Vendor rev                                : A
Vendor SN                                 : UY30DTX
Laser output power                        : 0.5230 mW / -2.81 dBm
Receiver signal average optical power     : 0.7285 mW / -1.38 dBm

注意事项

自动协商和 FEC

如果在 100G 和 25G 接口上自动协商关闭,您必须将 FEC 设置为 *OFF*、RS 或 BaseR 以匹配邻居。当自动协商关闭时,FEC 默认设置 *auto* 不会建立连接。

如果自动协商开启,并且您为端口设置了链路速度,则 Cumulus Linux 会禁用自动协商并使用您配置的端口速度设置。

与 Spectrum-4 交换机进行自动协商

当您将 NVIDIA Spectrum-4 交换机连接到另一个使用 PAM4 调制的 NVIDIA Spectrum-4 交换机时,您必须启用自动协商。

1000BASE-T SFP 模块仅在某些 25G 平台上受支持

以下 25G 交换机支持 1000BASE-T SFP 模块

  • NVIDIA SN2410
  • NVIDIA SN2010

100G 或更快的交换机不支持 1000BASE-T SFP 模块。

重启 NVIDIA SN2100 交换机后,eth0 的速度始终为 100MB/秒。如果您将接口断开然后重新连接,则接口将协商 1000MB。这仅在接口首次启动时发生。

要解决此问题,请将以下命令添加到 `/etc/rc.local` 文件中,以便在交换机启动时自动闪断接口

modprobe -r igb
sleep 20
modprobe igb

NVIDIA SN5600 交换机和强制模式

当您在 NVIDIA SN5600 交换机的端口 10 到 50 上配置强制模式时,本地端口和对等端口之间的 Rx 预编码设置必须相同,以获得最佳的链路信号完整性。

报告接口操作关闭的延迟

当您同时从交换机上移除两个收发器时,两个接口都会立即显示 `carrier down` 状态。但是,第二个接口需要一秒钟才能显示 `operational down` 状态。此外,此接口上的服务也需要额外一秒钟才能关闭。

NVIDIA Spectrum-2 交换机和 FEC 模式

NVIDIA Spectrum-2 (25G) 交换机仅支持 RS FEC。

将 NVIDIA SN4410、SN4700、SN5600 连接到 Spectrum-3 及更早版本的对等交换机

当您使用 4x 分解配置和默认的每个端口通道数设置将 NVIDIA SN4410、SN4700 或 SN5600 交换机连接到任何 Spectrum 1、Spectrum-2 或 Spectrum-3 对等交换机(具有四个通道)时,链路不会建立。要解决此问题,请提供如下所示的每个端口通道数配置

cumulus@switch:~$ nv set interface <interface> link breakout 4x lanes-per-port 1