物理交换机端口上的链路未启动
问题
物理交换机端口(以“swp”开头的接口)上的链路未启动。
环境
- Cumulus Linux,所有版本
解决方案
以下是需要检查的事项列表
确保您的 Cumulus Linux 许可证有效
在您安装有效的 Cumulus Linux 许可证之前,任何物理交换机端口都不会启动,因此它们不会显示在 ip link show
的输出中。
$ sudo cl-license
No license installed!
阅读本文,了解有关如何解决此问题的更多详细信息。
使用 ip link set 启动链路
检查 ip link show
的输出,您应该看到以下内容
物理状态:UP
管理状态:UP
LOWER_UP
cumulus@switch$ ip link show swp1 3: swp1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP mode DEFAULT qlen 500 link/ether c4:54:44:4f:ab:00 brd ff:ff:ff:ff:ff:ff
如果物理交换机端口显示为 DOWN 而不是 UP,请使用 ip link set
命令将接口配置为 UP
cumulus@switch$ ip link show swp3
5: swp3: <BROADCAST,MULTICAST> mtu 9000 qdisc pfifo_fast master vlan5 state DOWN mode DEFAULT qlen 500
link/ether c4:54:44:4f:ab:00 brd ff:ff:ff:ff:ff:ff
cumulus@switch$ sudo ip link set swp3 up
cumulus@switch$ ip link show swp3
5: swp3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master vlan5 state UP mode DEFAULT qlen 500
link/ether c4:54:44:4f:ab:00 brd ff:ff:ff:ff:ff:ff
为了在重启后保持此设置,以便端口处于启动状态,请在 /etc/network/interfaces
文件中定义 swp(使用 net add interface swp3 link up
);您也可以使用 Mako 自动化此操作,如本文中所述。
cumulus@switch$ net add interface swp3 link up
cumulus@switch$ net commit
确保物理连接良好
在 ip link show
的输出中,如果您看到 NO_CARRIER 而不是 LOWER_UP,则表示没有物理链路。
cumulus@switch$ ip link show swp21
23: swp21: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 9000 qdisc pfifo_fast master vlan5 state DOWN mode DEFAULT qlen 500
link/ether c4:54:44:4f:ab:12 brd ff:ff:ff:ff:ff:ff
检查您的连接,重新插拔可插拔模块并验证线缆。
显式配置端口速度、双工模式、自动协商设置
您可能需要显式配置物理交换机端口属性,尤其是在端口可能允许不同类型的可插拔模块或有人重新配置属性的情况下。以下属性可能需要显式配置
- link-speed
- link-duplex
- link-autoneg
例如,您可以在 /etc/network/interfaces
中配置以下内容
auto swp1
iface swp1
address 10.1.1.1/24
mtu 9000
link-speed 10000
link-duplex full
link-autoneg off
请注意,如果接口名称以 swp 开头,并以 _sX 结尾,其中 X 是 0 到 3 之间的数字,则这是 breakout Twinax 或 AOC 线缆中的 10G 连接。
cumulus@switch$ ip link show swp32s0
37: swp32s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 500
link/ether 00:e0:ec:27:ab:9b brd ff:ff:ff:ff:ff:ff
cumulus@switch$ grep swp32s0 /var/lib/cumulus/porttab
swp32s0 xe34 0 0
cumulus@switch$ grep xe34 /etc/bcm.d/config.bcm
port_init_speed_xe34=10000
port_init_autoneg_xe34=0
serdes_if_type_xe34=9
阅读交换机端口属性,了解有关如何配置物理交换机端口属性的更多详细信息。
使用 ethtool 验证硬件设置
ethtool
命令使您能够查询或控制网络驱动程序和硬件设置。它将设备名称(如 swp1)作为参数,例如
cumulus@switch$ ethtool swp1
cumulus@switch$ sudo ethtool -m swp1
阅读使用 ethtool 监控接口和收发器,了解有关 ethtool
的更多详细信息。
强制将接口配置推送到硬件
确保 /etc/network/interfaces
中的配置已推送到硬件。运行以下命令
cumulus@switch$ sudo ifreload -a