为什么以太网自动协商选择1000baseT-HD而不是1000baseT-FD?

为什么以太网自动协商选择1000baseT-HD而不是1000baseT-FD?

我有一台连接到交换机的 Ubuntu 16.04 服务器,它们协商的是半双工连接而不是全双工连接,我不知道为什么。我尝试使用另一个端口和电缆(另一台服务器使用该端口和电缆成功通过全双工连接),但问题仍然存在,因此这排除了电缆或交换机端口问题,我认为问题与 Ubuntu 配置或 NIC 有关。

# lspci | grep Ethernet
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5722 Gigabit Ethernet PCI Express

# mii-tool -v eno1
eno1: negotiated 1000baseT-HD flow-control, link ok
  product info: vendor 00:50:ef, model 45 rev 0
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

有什么办法可以修复这个问题并获得全双工连接 (1000baseT-FD)?我不喜欢强制链接到 1000baseT-FD,我更愿意修复/调试自动协商,以便自动选择此模式。

答案1

有一个漏洞mii-tool会导致千兆速度链路下 HD 和 FD 切换。

1000baseT-FD您可以通过运行以下命令来确认链接确实正在运行ethtool

$ sudo ethtool [interface name] | grep Duplex
         Duplex: full

或者,您可以从dmesg以下信息判断该链路正在全双工运行:

$ dmesg|grep duplex
xxxxxxx      eth0: Link is up at 1000 Mbps, full duplex

相关内容