CodingBox Q&A Ask question

CRS326-24S+2Q+RM 和华为 S6720 之间的 Q+DA0001 40G DAC:两端都能读到线缆,链路就是起不来

Asked Active Viewed 144 AI translation from English
7

在重建我们某个站点的汇聚层:一台 CRS326-24S+2Q+RM 接客户 SFP+ 端口,通过 40G 上联到一台华为 S6720。同一个机柜里距离很短,所以用的是无源 DAC,而不是光模块。

  • MikroTik CRS326-24S+2Q+RM,QSFP+ 端口 qsfpplus1-1
  • 华为 S6720-54C-EI-48S-AC,普通 40GE 端口
  • MikroTik Q+DA0001 无源 40G QSFP+ DAC

两台设备都能正确读到线缆,MikroTik 显示它就是自家的 Q+DA0001,华为在端口信息里也列出了一根 40G 铜缆。然后就没有然后了:

MikroTik: qsfpplus1-1   no-link
Huawei:   40GE...       current state : DOWN

已经做过的:

  • 用同一根线在 CRS326 的两个 QSFP+ 端口之间做环回:立刻链接成功
  • 在华为的两个 40GE 端口之间做环回:也能链接
  • 两端互换、换到另一个 QSFP+ 端口、重新插拔全部部件
  • 确认两端都不是管理性 down

所以线缆是好的,每台交换机单独用它都没问题,只有跨厂商配对时才不行。有没有人真的在 CRS326 和 S6720 之间把 Q+DA0001 跑起来过,你在两端各改了什么才让端口起来的?

Comments 5

Accepted answer

两端都用默认配置这个组合正是你的问题所在,两端同时都关掉自动协商也一样是问题。在这个组合上对我管用的做法是不对称的,写出来感觉不太对,但事实就是这样:华为的 40GE 端口关掉自动协商,而 MikroTik 的 qsfpplus1-1 继续保持自己的自动协商开启。

在华为这边,进接口后:

undo negotiation auto

在 MikroTik 这边,不要动它,或者干脆显式设置一下,免得以后有人「修正」它:

/interface ethernet set qsfpplus1-1 auto-negotiation=yes

这样设置之后,我这边的 CRS326 到 S6720 那对端口的 40G 链路立刻就起来了,之后一直很稳定。我不太想把这个说成是一个「修复」,更像是一个变通办法:这两家的实现显然在 40G DAC 链路应该协商成什么样这件事上意见不一致,这种不对称配置只是双方都能接受的那个折中点。请在维护窗口里做这个改动,而不是直接在生产上联上动手;如果不生效,先查查你的华为版本到底允不允许在那个端口上关闭自动协商,因为这一点不是所有版本都支持。

4 United StatesedgewolfUS Show original (English) AI translation

跨厂商 40G 链路,两端都能识别出线缆但都起不来,几乎总是归结到两个端口到底在协商些什么。

把两边的自动协商状态贴出来:华为那边 40GE 端口的配置,以及 MikroTik 上 qsfpplus1-1 的 auto-negotiation 取值,说明你有没有把任何一边从默认值改过。也说一下你是不是已经试过把它关掉——是两端同时关,还是只关一端,因为这是两个不同的实验。

环回测试只能证明线缆是好的。它们完全说明不了两端在协商行为上是否一致,而这才是这里真正有意思的地方。

2 Kazakhstanlanbyte59KZ Show original (English) AI translation

两边都是默认配置:qsfpplus1-1 上是 auto-negotiation=yes,华为 40GE 端口上是 negotiation auto,除了把接口拉起来之外我没动过任何配置。我确实试过两端同时关掉,结果毫无变化;只关一端这个思路我从来没想到过。

链路状态一直是 MikroTik 上的 no-link 和华为上的 DOWN,计数器完全不动,所以根本没走到能在任一台设备上记录错误日志的地步。

0 Indiawaveeng67IN Show original (English) AI translation

最后那个说明值得多说两句,不只是一句附注,因为我正好卡在这一点上。在一台 S6320-54C-EI 上,MikroTik 一侧跑的是 RouterOS 7.12,那个 40G 端口根本不允许你关闭自动协商,所以这个不对称的招数在这里没地方落脚。

其余症状完全一样:两端都能读到线缆,端口保持 down,哪里都没有报错。所以上面那个变通办法确实存在,但和具体平台绑定,就我所知,这两种 40G 实现之间的根本不兼容问题还是没有解决。

2 Italylambdapilot72IT Show original (English) AI translation

给任何在这里搜到、始终没法让跨厂商 DAC 正常工作的人:到了某个节点,停止硬扛反而更省钱。

我遇到过一台 Alta Route 10 对一台 CRS309-1G-8S+,Route 10 能识别 10Gtek 和 FS 的 SFP+ DAC,都报告为 SFP-H10GB-CU2M,而 CRS309 显示没有对端广播链路参数,两者只有强制降到 1G 才能建立链路。在 /cfg/sfpX.txt 里强制 10gbase_r 毫无作用,不管笼位里插的是哪个模块,Route 10 上 ethtool 一直列出的都是 baseT 模式。把两端都换成 FS SFP-10GSR-85 光模块之后,10G 链路立刻就通了。

速率和设备都不一样,但教训是一样的:线缆确认是好的,两端还是谈不拢的时候,一对光模块的花费比再折腾一周调试要低。

1 Franceedgenode83FR Show original (English) AI translation
Log in to comment. Log in