交换机端口属性
Cumulus Linux 为几种类型的物理和逻辑设备公开网络接口
lo
是网络环回设备eth
是交换机管理端口(仅用于带外管理)swp
是交换机前面板端口- (可选)
br
是桥接(IEEE 802.1Q VLAN) - (可选)
bond
是链路聚合(IEEE 802.3ad 链路聚合中继,或端口通道)
每个物理网络接口(端口)都有多个设置
对于 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 commit
或 ifreload -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-netstat
(RX_ERR
列)或 ethtool -S
(HwIfInErrors
计数器)检查误码。非零值表示误码。与好数据包相比,预期错误数据包为零或极低。如果电缆在启用 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,损耗 <13db | Base-R/FC-FEC |
25G 2.5,3 米:CA-S,损耗 <16db | Base-R/FC-FEC |
25G 2.5,3,4,5 米:CA-L,损耗 > 16db | RS-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,但不支持分解。
258x 10G
最大 10G 端口数:258(64 个端口分解为 4x + 2 个附加端口)
258x 25G
最大 25G 端口数:258(64 个端口分解为 4x + 2 个附加端口)
256x 50G
最大 50G 端口数:256(32 个奇数端口分解为 8x)
256x 100G
最大 100G 端口数:256(64 个端口分解为 4x)
128x 200G
最大 200G 端口数:128(64 个端口分解为 2x)
SN5600 64x OSFP (800GbE) 接口支持 PAM4 和 NRZ 编码,所有速度均可设置为低至 10G。
对于较低速度,PAM4 会自动转换为 NRZ 编码。
附加端口 #65 支持 1G、10G 和 25G,但不支持分解。
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 都会自动禁用后续的偶数端口。
要将端口拆分为多个接口,请编辑 `/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 交换机没有此要求。
使用 `sudo systemctl reload switchd.service` 命令重新加载 `switchd`。重新加载**不会**中断网络服务。
cumulus@switch:~$ sudo systemctl reload switchd.service
要为拆分端口配置特定速度,请编辑 `/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 分解默认分配每个端口两个通道,而不是一个通道。请务必将连接两端的每个端口的通道数配置为相同。
移除分解端口
要移除分解端口
运行 `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
运行 `nv unset interface <interface> link breakout` 命令以将接口配置为原始速度。例如
cumulus@switch:~$ nv unset interface swp1 link breakout cumulus@switch:~$ nv config apply
编辑 `/etc/cumulus/ports.conf` 文件以将接口配置为原始速度。
cumulus@switch:~$ sudo nano /etc/cumulus/ports.conf ... 1=1x 2=1x 3=1x 4=1x ...
重新加载 `switchd`。重新加载**不会**中断网络服务。
cumulus@switch:~$ sudo systemctl reload switchd.service
从 `/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
编辑
/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
运行 `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 链路速度
重启 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