CodingBox Q&A Ask question

Lenovo RackSwitch G8124E 拒绝通用 10G SR SFP+,报 UNAPPROVED - SR SFP+ is DISABLED

Asked Active Viewed 258 AI translation from English
7

我们从一个已下线的机柜里拆出一对 G8124E,我正在把它们重新搭建成内部测试环境的汇聚层。原厂光模块的预算是零,所以全部用我们其他地方已经在用的那种通用 10G SR 模块。

  • Lenovo RackSwitch G8124E,原 IBM 品牌的机箱
  • 通用 10G SR SFP+,双工 LC,和我们生产环境机架顶交换机上正常工作的是同一批货
  • OM3 跳线接到一块服务器网卡,用同款模块能协商到 10G

端口会短暂亮一下,然后交换机就把它关掉:

UNAPPROVED - SR SFP+ is DISABLED

之后链路再也建立不起来,端口一直停在 down。

我已经试过:

  • 把模块换过四个不同的插槽,每次都是同样的提示
  • 换上同一批货里的第二个模块,又换了另一家供应商的第三个模块
  • 翻遍了接口配置,找有没有类似 allow-unsupported 这样的开关,什么都没找到

有没有办法让这台设备接受第三方光模块,还是说这个认证检查只能用 Lenovo 编码的模块才能通过?

Comments 5

在有人给你命令之前,先看看 show version 报的是什么。这一系列设备的解决办法不是一条命令就能通吃的,要按代码分支区分:在 7.x 镜像上该怎么做,和在 8.x 上该怎么做是不一样的,所以得先确定版本。

另外说一下这些模块是纯通用的,还是 EEPROM 里带着能识别出来的厂商字符串。固件是按这个字符串来给每个模块打分的,用户反映即使是 Intel 编码的 SFP+ 插在这款交换机上也一样会报 unapproved transceiver 的警告,所以光看这条提示,其实说明不了模块本身的问题。

3 KazakhstanrackhubKZ Show original (English) AI translation

show version 显示是 7.x 镜像,属于比较老的分支,不是当前版本。

这些模块是纯通用的,里面没有 Intel 或 Cisco 的编码,识别出来的是造它们的那个 OEM 厂商。我还把第三个模块插到旁边一台 IBM RackSwitch G8124 上,结果一样,所以不是某一个插槽或某一个模块单独的问题。

0 Indiawaverunner21IN Show original (English) AI translation

在较老的分支上有一个 boot loader 变量可以关掉这个认证检查。文档里说这适用于 5.x、6.x、7.x 以及 8.3.x 或更低版本,所以 7.x 的设备在适用范围内。

这需要用串口控制台,走 mini-USB RS232 口,不是走网络。重启交换机,在内存自检期间一直按住 Shift+M,直到出现 boot loader 的 => 提示符,然后:

setenv sfp Override
saveenv
printenv
boot

这个值区分大小写,Override 首字母要大写 O。在 boot 之前先跑一次 printenv,确认变量确实已经保存下来。交换机启动完成之后就不会再禁用未经批准的 SFP+ 模块了,端口自己就会起来。

两点提醒。这只是一个实验室和应急手段,Lenovo 不支持第三方光模块,这里说的都不是官方做法。另外在这些老设备上要远离双速率光模块,即使绕过了这个检查,它们仍然会带来麻烦。

2 United Statesporttech22US Show original (English) AI translation

整条 Lenovo 交换机产品线都是同样的情况,不只是 G8124E。我手上有一台 G8272,把一个思科 - Finisar 的 SFP-10G-LR-S 判定为 Unapproved,端口显示 Disabled,链路起不来。是正牌思科光模块,只是不在 Lenovo 的名单上。

在 ThinkSystem 这边,NE1032 和 NE1032T 跑的是 CNOS 而不是 ENOS,那边的入口是一条允许不受支持光模块的平台命令,而不是走 boot loader 那套技巧。我自己没跑过那条命令,所以在计划停机窗口之前先在你自己的设备上核实语法。底层的规律没变:固件都是拿 EEPROM 里的厂商字符串去对照一份名单,不认识的就禁用掉。

0 Brazilopticnerd31BR Show original (English) AI translation

补充一点:这个绕过设置不一定能在固件升级后保留下来。如果你刷了新镜像,端口又都死了,先回到串口控制台查一下 printenv,再考虑拔模块,这个变量很可能就是被清掉了。

另外也不要把厂商的解锁开关当成普遍可靠的东西。在跑 IOS-XE 16.9.x 的 Catalyst 9200 上,由于 CSCvk03296 这个缺陷,service unsupported-transceiver 完全不起作用,大家改用的是全局配置里的 no errdisable recovery cause gbic-invalid,这样端口就不会被 err-disable 掉,FS 和 Cables and Kits 的模块也就能正常工作了。厂商不同,教训一样:文档里写的那个开关,和真正管用的那个开关,不一定是同一个。

2 Türkiyelinknerd83TR Show original (English) AI translation
Log in to comment. Log in