收发器不建链:一套现场诊断顺序

一条起不来的链路是一段流程,不是一次猜测。清洁、配置、验证、替换——按这个顺序,让 DDM 读数告诉你何时该收手。

一个起不来的端口是一次难得的机会:它是数据中心里少数几种能在五分钟内完全诊断、且无需任何超出交换机已有能力的仪表的故障之一。多数团队跳过这个机会,直接走 RMA,用一周的提前期去解决一个通常只是脏插芯或 FEC 不匹配就能解决的问题。

下面的顺序按调查成本排序,而非按发生概率。清洁不花钱,耗时三十秒。配置比对花两分钟。遥测花一分钟。只有到这时,换硬件才说得通,因为一次硬件替换会毁掉证据。

清洁之前:先明确「断」指什么

多数「无链路」报告其实对应四种不同状态之一,而每一种的正确下一步都不同。

StateWhat you actually seeFirst thing to check
模块未被识别端口显示无光模块接入插装、卡扣、笼子损伤、EEPROM 读失败
模块已识别,端口管理性关闭接口存在但被禁用端口配置、span-tree/VLAN 式门控、自动化状态
端口起来,无流量链路 LED 亮,计数器持平路由/VLAN 不匹配,非光故障
端口反复抖动链路反复起降FEC 计数器、临界功率、温度

一个完全不被识别的模块,是插装或供电问题,怎么清洁都无济于事。一个被管理性关闭的端口,会报出一份完全健康的 DDM 表。花十秒确认你处在哪种状态,能省下接下来的二十分钟。

诊断顺序

1. INSPECT   connector seated? latch closed? dust cap off both ends?
2. CLEAN     one-click cleaner on every ferrule that was ever exposed
3. CONFIGURE speed, FEC, autoneg, lane map matching on both ends
4. TELEMETRY DDM: Tx power, Rx power, bias, temperature on BOTH ends
5. ISOLATE   swap module / port / cable, one variable at a time

跳过第 2 步是现场最常见的错误,因为连接器看着是干净的。跳过第 3 步是第二常见的,因为配置不匹配制造出的链路故障,完全没有任何光学症状。

为什么清洁是第二步而非第一步

如果模块没被识别,插芯就不是问题。先确认可识别,再清洁。唯一的例外是过去一小时内重新对接过的任何连接器——在归咎其他任何东西之前先清洁它,因为污染概率高、清洁成本近乎零。

检测标准是 IEC 61300-3-35,它定义了插芯端面的合格/不合格区域。一支便宜的手持显微镜能分辨肉眼检查分辨不出的污染;当同一条链路两次失败时,一键清洁器不能替代检测。

为什么配置是独立于遥测的一步

配置故障会给出健康的 DDM 读数。Rx 功率正常、Tx 功率正常、温度正常,链路却仍起不来,因为一端在强制 RS-FEC,另一端却期望 FC-FEC;或者因为端口期望 2x200G 通道映射,而模块呈现的是 8x50G。

先读遥测是本能,它会让人得出「光没问题,肯定是交换机」——这话没错但没用,因为交换机的那个问题,是他们本可以在第 3 步就查到的一行配置。

DDM 决策表

在得出结论前,两端都要读遥测。单端读数是整个过程里错误结论最常见的来源。

Observation (near / far)Most likely causeAction
近端 Rx 极低,远端 Tx 正常光纤脏或断、对接不良清洁、重插、用显微镜检测
近端 Rx 低且远端 Tx 低远端激光器或驱动故障RMA 远端模块
Tx 与 Rx 均正常,链路仍断速率或 FEC 不匹配、通道映射、主机配置比对端口配置;试强制速率
Rx 正常,已纠正码字计数大临界功率或端面污染先清洁,再对照预算比对
Tx 偏置数周持续爬升激光器老化在硬失效前安排 RMA
外壳温度远高于邻件笼子风道堵塞、邻件发热检查风道与模块间距
Rx 功率波动超过 0.5 dB对接不稳或线缆受力重新端接或更换跳线

误导人的非对称性

近端 Rx 功率只告诉你接收路径的情况。它不说明远端发射器是否发出了合规的光,也不说明远端是否已完成训练。当近端遥测看着完美、链路却断了,有用的下一步读数是远端——而不是换模块。

伪装成硬件损坏的兼容性陷阱

这些占了被退回、随后却在来料检测中通过的模块中的很大比例。

厂商编码锁。 许多平台在驱动层拒绝未知的 EEPROM 编码。模块电性能正常。在报废它之前,在一个未上锁的平台上测一下;如果那里能起来,问题就是编码策略,而非故障。编码锁对你是否可接受,是个采购问题,而非技术问题——但它需要在成批无编码模块到货前就定下来。

SFP+ 与 SFP28 之间的速率非对称。 25G 模块插在 10G 端口通常能协商降速。10G 模块插在 25G 端口则无法协商升速,且常被报为「不支持」而非「缺失」,把人引向错误的故障。10G 与 25G 兼容性矩阵 覆盖了哪些组合真能训练起来。

FEC 模式不匹配。 RS-FEC 对上 FC-FEC,会在 PCS 层让链路断掉,而光完美无缺。这最常出现在同一条链路上混用厂商代际时,因为默认值不同。

400G 及以上的通道映射混乱。 一个 400GBASE-DR4 模块插在配置为 4x100G breakout 的端口里,会部分通道训练成功、其余失败,DDM 在能工作的通道上显示功率良好。先看 breakout 配置,再去看光;模块正在做的,正是你告诉它的。

把 AOC 当成 DAC。 有源光缆(AOC)需要供电、比铜缆更热、失效方式也不同。用铜缆的排障手册去诊断它,会掩盖真实故障。

带转接器的外形规格不匹配。 OSFP 模块插进 QSFP-DD 笼子不会工作,而且任何无源转接器都改变不了这一点。外形规格对比 解释了两者为何在机械上不兼容。

隔离:五分钟,三次交换

Move suspect module -> known-good port
  links?  -> original port or its config is at fault
  no?     -> continue

Insert known-good module -> original port
  links?  -> RMA the suspect module
  no?     -> continue

Replace fiber path with a tested patch cord
  links?  -> cabling fault; run an insertion-loss test
  no?     -> configuration, firmware or EEPROM; pull port logs
flowchart TD
    A[Port down / no link] --> B[Swap module to known-good port]
    B -->|Links| C[Original port or config fault]
    B -->|Still down| D[Insert known-good module in original port]
    D -->|Links| E[RMA suspect module]
    D -->|Still down| F[Replace fiber path with tested patch cord]
    F -->|Links| G[Cabling plant fault - run insertion-loss test]
    F -->|Still down| H[Check config, firmware, EEPROM dump]

让这套流程有效的纪律,是一次只改一个变量。把模块和线缆一起换,会得到一条能工作的链路、却得不到任何信息,这意味着同样的故障下周会在另一个端口复现。

当模块真的坏了

满足以下条件时 RMA 才是对的:模块在多于一个已知好端口上失败、已知好模块在原端口能工作、且遥测显示物理故障(无 Tx 输出、偏置远超批次基线、温度传感器读数不合理)。三者要同时满足,而非只满足其一。

达不到这些条件的,都值得再做一次配置比对,因为一个退回后通过来料检测的模块,既让你付出提前期,也在你自己的流程上打了个问号。

链路起来之后

一条训练起来的链路不等于健康链路。观察 24 小时,再建立基线。

MetricWarning threshold
已纠正码字 / FEC 计数器持续爬升意味着临界功率或脏插芯
DDM Rx 功率漂移一天内下降超 0.5 dB,提示污染或线缆受力
模块温度持续高于邻件 10 °C,提示笼子风道问题
链路抖动任何抖动都值得查;collective 工作负载把抖动视作致命

如果 pre-FEC BER 在功率持平的情况下持续爬升,问题是代价(penalty)而非损耗,而 链路预算详解 里有用来判断该由信道还是模块负责的计算。

参考来源

DDM 表中的阈值是现场经验法则,而非规范限值。权威数值在模块数据手册与交换机平台的认证清单里;当某个决策涉及质保或 SLA 后果时,以那些为准。

FAQ

链路 LED 灭着,但 DDM 显示 Rx 功率良好。接下来怎么办?
Rx 功率只能证明接收光路。查对端:远端模块的 Tx 功率,以及两端是否协商到了相同速率与 FEC。一个被强制成 25G 的端口与 10G 模块之间的 PAM4/NRZ 非对称设置,即使光完美,也会让链路起不来。
每次都要清洁光纤连接器吗?
每次重新对接都要,用一键清洁工具。1310 nm 下单模插芯上的一粒灰尘就要掉 1-3 dB,足以把一条 DR 级链路压到预算以下,却没有任何可见症状。
怎么区分坏模块和坏端口?
一次只换一个变量:把模块插到已知好端口,把已知好模块插到可疑端口,最后再换光纤路径。三次交换中有两次就能在五分钟内把故障定位到模块、端口或线缆。
有多少假 RMA 退回其实是配置而非硬件造成的?
占比很大。编码锁、速率与 FEC 不匹配、通道映射错误,统统表现为死硬件。本文的隔离流程之所以存在,是因为如果你在测试台上复现了同样的错误配置,测模块什么都证明不了。