CodingBox Q&A Ask question

华为 CE6800 的 100GE 上联口用 SR4 光模块接 Profitap XX-3200G,链路始终起不来

Asked Active Viewed 45 AI translation from English
4

在给客户把原有的汇聚层设备换成 CloudEngine,唯一起不来的一条链路是接到他们分光器(packet broker)的那条 100GE。交换机上其他一切都顺利上线了。

  • 华为 CloudEngine 6800,100GE 端口
  • 100GBASE-SR4 QSFP28 模块,华为原厂,两端各一个
  • 对端是 Profitap XX-3200G 分光器

两端都能看到对方的模块。交换机日志里除了我重新插拔时产生的收发器插入/拔出记录,没有任何告警,接口就是一直 down:

<CE6800> display interface 100GE1/0/1
 ...
 FEC : RS-FEC

已经试过:

  • 把两个模块都换成备用件,清洁了 MPO 端面,没有变化;
  • 把链路换到交换机上另一个 100GE 端口;
  • 检查了分光器那一侧,它能检测到自己的模块,也没有报任何问题。

所以两端的光模块都被识别了,谁都没有报错,但就是没有链路。在 CloudEngine 的 100GE 端口和第三方设备之间起链路,除了这些之外还有什么必须匹配的?

Comments 3

Accepted answer

这是 FEC 不匹配。CloudEngine 在配 SR4 光模块的 100GE 端口上默认开启 RS-FEC,而分光器那边根本没有 FEC 设置,所以是关着跑的,两端 FEC 不一致就永远完不成协商训练。因为没出什么故障,所以也没什么可记录的,这就是为什么日志里只有你插拔时产生的那些消息。

在交换机上关掉它,在接口视图下:

fec mode none
commit

undo fec mode 效果一样。关键是第二行。CE 是两阶段配置,一个没有 commit 的 fec mode none,你回读配置的时候看着完全正确,但端口还是和之前一样 down。我见过一个客户案例就因为这个多耗了一天,所有人都以为 FEC 早就关掉了。

commit 之后,display interface 应该显示 FEC: NONE,端口也应该能训练起来。

如果对端以后真的加了 FEC 设置,更好的做法是在那边开 RS-FEC,交换机这边保持默认,因为在 100G 上你其实是想要这个纠错的。在两个不同厂商之间,我会在两侧都显式设置 FEC,而不是指望它们自动协商出一致结果。

3 United Statesphotonrunner70US Show original (English) AI translation

分光器那边关于 FEC 是怎么说的,如果它有说的话?你自己其实已经贴出了有意思的那一半:交换机端口在跑 RS-FEC。华为明确说明 100GE 链路两端必须用相同的 FEC 模式,否则接口永远起不来,而这种故障看起来就跟你的一模一样——两个模块都健康、没有告警、没有日志、端口 down。

我打过交道的大多数分光器和分路器根本没有 FEC 这个选项,也就是说它们是关着跑的,该让步的是交换机这一侧。先确认这一点,再动一处设置。

3 Netherlandsopticguru22NL Show original (English) AI translation

值得补充的是,CloudEngine 的默认值不是一个固定值,而是取决于模块类型。QSFP28-100G-LR4 和 QSFP28-100G-LR1 按照 IEEE 802.3 默认是关闭 FEC 的,而其他所有 QSFP28 类型默认是开启的。所以「直接关掉」这个建议放在 LR4 链路上就是错的——那种情况下交换机这边本来就是关着的,不匹配出在对端。

还有两条同一章节里的规则,我自己踩过坑:

  • QSFP28-100G-BIDI、QSFP28-100G-DR 和 QSFP-100G-FR1 要求在插入模块之前,先在端口上关闭 RS-FEC。它们在模块的 DSP 里自己做 FEC,如果主机侧的 RS-FEC 还开着,得到的不是普通的端口 down,而是 Down (Transceiver type mismatch)。
  • 25GE 上则正好相反。在 CE6863、CE6863E、CE6863K 和 CE6881E 上,只要 SFP28 高速线缆长度不是 1 米,就需要开启 RS-FEC,否则端口会停在 Down (Transceiver type mismatch)。

所以先用 display transceiver interface 100GE1/0/1 verbose 确认自己手上到底是哪种模块,再决定该往哪个方向调 FEC,而且不管哪种情况都别忘了 commit。

0 GermanycoreadminDE Show original (English) AI translation
Log in to comment. Log in