Intel X710 配 TP-Link 交换机:10G DAC 没有链路,端口卡在 NO-CARRIER
在服务器和一台 TP-Link 交换机之间搭 10G,没什么特别的。系统里能看到网卡,驱动正常加载,但端口完全没有链路——既没有报错,也没有协商的迹象。
- 服务器:Intel X710,四个 10GbE SFP+ 端口,固件 9.140.76856
- TP-Link 交换机,SFP+ 端口
- 线缆:OEM 无源 DAC SFP-10G-CU1M,一米
- Linux,接口在系统里能看到
端口状态:
ip link: <NO-CARRIER,BROADCAST,MULTICAST,UP>
ethtool: Link detected: no
Auto-negotiation: off
transceiver: internal
已经做过的:
- 手动把接口拉起来:
ip link set up dev sfp1; - 打开自动协商:
ethtool -s sfp1 autoneg on——没有变化; - 跑了 xl710-unlocker,它回复说 NVM 已经是解锁状态,也就是说常见的那个锁的把戏在这里用不上。
交换机那侧的端口也是一声不吭,计数器全是零。问题出在线缆上、网卡本身的限制上,还是我漏掉了什么配置?
Comments 5
这里其实是两把不同的锁,经常被混为一谈。xl710-unlocker 解开的,是针对特定主板厂商的 NVM 锁。它不会碰模块限制:Intel 的零售版固件照样会拒绝 EEPROM 里没有 Intel 编码的 SFP+ 和 DAC。拒绝的表现和你这里一模一样——端口一声不吭,日志空空如也,接口停在 NO-CARRIER。所以「NVM 已经解锁」和「应该能接受任意线缆」完全是两回事。
实际中大家的做法:
options ixgbe allow_unsupported_sfp=1这个选项,但那是 ixgbe 驱动的,和用 i40e 的 X710 没关系,你这里没有这个开关;我会先从换一根线缆试起:我当年就是这么解决的,但每个人的硬件都不一样,最好自己验证一下。顺便也试一下一对普通的光模块——这样能把「线缆不合它意」和「端口不合它意」这两种可能分开。
确认几件事,不然只能瞎猜。这根线缆标称是只支持 10G,还是双速率的?
ethtool -m sfp1显示什么——能读出厂商和货号,还是端口根本看不到模块?再拿同一根 DAC 在交换机自己的两个端口之间做个环回:如果环回能起来,说明笼位和线缆都是活的,问题就收窄到网卡上了。带着结果回来了,不过是半成功。换了另一根线缆,这次是千兆的——SFP-1G-DAC0.2M。它立刻就起来了,端口进入 1000baseX,全双工,流量正常。那根十兆兆的 SFP-10G-CU1M 该沉默还是沉默:NO-CARRIER,网卡和交换机都没有一条消息。
也就是说网卡是活的,笼位也是活的,就是 X710 不愿意接受这根具体的 10G 线缆。目前先用千兆顶着,同时在找兼容列表里的 DAC。
DAC 还有另一个坑,跟 Intel 无关:一部分无源 SFP+ 线缆只编码了 10G,不支持降到 1000BASE-X。我遇到过一根这样的线缆,死活不肯把一个千兆笼位的 TL-SG2210MP 和跑 1.2 固件的 TL-SX3008F 连起来,尽管同一根线在两台十兆兆设备之间用得毫无问题。管用的只有明确在规格里标注双速率的线缆,加上两端都写死成 1000 Mbit/s 和全双工。我认识的人那边 Unifi 家的 SFP+ DAC 在 ER8411 和 SG2428P 之间就跑得很正常,所以 SFP 和 SFP+ 配对本身并不是死刑判决。
既然千兆已经起来了,在彻底判定线缆有问题之前,先过一遍交换机端口上的速率和双工设置。之前遇到过一个 T1700X-16TS 的案例:SFP+ 端口死活不肯和一块 Synology 10G 网卡用原厂三米 TXC432-CU3M 建立链路,而同一根线接同一台 NAS 通过 Netgear XS708E 就用得很好,交换机也已经两次恢复出厂设置了。用同一根 DAC 在这台交换机自己的两个 SFP+ 端口之间做环回是能起来的,也就是说线缆和笼位都没问题。
官方支持给的排查步骤是:先确认线缆在兼容列表里,然后改一下 SFP+ 端口的速率和双工,再把双工设成 auto,因为那里默认是 full。最后结果作者没再回来说,不过这几步本身是合理的。