RHEL 5.3 上的 bnx2 和 e1000e 驱动程序检测到重复的链路丢失

RHEL 5.3 上的 bnx2 和 e1000e 驱动程序检测到重复的链路丢失

更新:问题出在交换机硬件故障。感谢大家提供的很好的调试建议。MattyB 建议使用其他交换机来查看问题是否仍然存在,这是正确的答案。

你好,serverfault,

我正在尝试调试几个节点上的一个问题,这些节点每次都会重复检测链接丢失 1-2 分钟,而实际上应该没有链接丢失。

服务器:
- HP DL360 G5
- 1 个板载 2 端口 Broadcom NetXtreme II BCM5708 千兆以太网 (rev 12)(使用 bnx2 驱动程序)
- 1 个 4 端口 Intel 82571EB 千兆以太网控制器 (铜缆) (rev 06)(使用 e1000e 驱动程序)

事实:
- 在所有节点上,Broadcom 端口和一个 Intel 端口都连接到同一个交换机
。-更新:在 Broadcom 和 Intel 两个 NIC 的端口上均检测到链路丢失
- 所有端口的速度均为 Gb/s,但两个节点上的 Intel 端口除外,它们的速度为 100Mb/s。所有速度均使用自动协商设置。-
所有节点最近都从 RHEL 5.0 升级到 RHEL 5.3。

我目前正在尝试访问交换机以强制 Gbps/全双工链路。有什么其他可以做些什么来诊断或修复此问题? 有哪些其他信息有用?

编辑:我已经在其中一个受影响的接口上运行了 tcpdump,我所能看到的只有 LLDP 数据包和一个 IGMP 组成员查询。我还将交换机设置为强制所有端口为 1000Mbps 链路,全双工。这是否表明问题是节点内部的,而不是由交换机上的任何设置引起的?

====== 日志消息 ======
Oct 29 11:30:36 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 11:30:37 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 11:30:39 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 11:30:39 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 11:31:08 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 11:31:10 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 12:56:41 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:56:41 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:58:34 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:58:34 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:59:02 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:59:03 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:59:05 db1 kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
Oct 29 12:59:05 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex
Oct 29 12:59:34 db1 kernel: bnx2: eth0 NIC Copper Link is Down
Oct 29 12:59:35 db1 kernel: bnx2: eth1 NIC Copper Link is Down
Oct 29 12:59:37 db1 kernel: bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON

====== 一个节点上所有连接接口的 ethtool 输出 ======
[root@db1 ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Link detected: yes
[root@db1 ~]# ethtool eth1
Settings for eth1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: g
Link detected: yes
[root@db1 ~]# ethtool eth2
Settings for eth2:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: d
Current message level: 0x00000001 (1)
Link detected: yes

答案1

这很奇怪。由于您在两个网卡上都遇到了丢失,我怀疑这会排除网卡特定的固件问题、内核驱动程序问题或硬件故障问题(主板除外)。尽管您发布的日志特定于 BNX2。您是否已验证连接到同一交换机并使用相同硬件配置文件的其他机器没有出现相同问题?您应该尝试将网卡和交换机硬编码为 100 mbit/full,并且检查电缆故障(虽然听起来很愚蠢)。最后,如果资源允许,为什么不尝试将该机器连接到第三方交换机(如 netgear 或同样无害的东西)。?

如果多个节点同时出现链路丢失,我甚至可以说您可能遇到了生成树错误,该错误始终导致交换机发生故障并重新收敛。有关拓扑的任何更多信息都将有助于诊断问题。

答案2

ethtool -K ethX tso off

在 broadcom NIC 上尝试此操作。它应该会禁用 ToE 功能,该功能通常会导致很多麻烦。

您还可以尝试将端口设置为双工或单工,而不是自动协商。

答案3

您的机器上运行的是最新的 NIC 和服务器固件吗?在 HP DL380 和 360 系统上运行过时的 NIC 固件时也遇到了一些类似的问题。

英特尔网卡的 dmesg 是什么样的?

您能访问交换机日志吗?交换机的品牌/型号是什么?

相关内容