Lenovo RackSwitch G8124E 拒绝通用 10G SR SFP+,报 UNAPPROVED - SR SFP+ is DISABLED
我们从一个已下线的机柜里拆出一对 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 的警告,所以光看这条提示,其实说明不了模块本身的问题。
show version显示是 7.x 镜像,属于比较老的分支,不是当前版本。这些模块是纯通用的,里面没有 Intel 或 Cisco 的编码,识别出来的是造它们的那个 OEM 厂商。我还把第三个模块插到旁边一台 IBM RackSwitch G8124 上,结果一样,所以不是某一个插槽或某一个模块单独的问题。
在较老的分支上有一个 boot loader 变量可以关掉这个认证检查。文档里说这适用于 5.x、6.x、7.x 以及 8.3.x 或更低版本,所以 7.x 的设备在适用范围内。
这需要用串口控制台,走 mini-USB RS232 口,不是走网络。重启交换机,在内存自检期间一直按住 Shift+M,直到出现 boot loader 的
=>提示符,然后:这个值区分大小写,
Override首字母要大写 O。在boot之前先跑一次printenv,确认变量确实已经保存下来。交换机启动完成之后就不会再禁用未经批准的 SFP+ 模块了,端口自己就会起来。两点提醒。这只是一个实验室和应急手段,Lenovo 不支持第三方光模块,这里说的都不是官方做法。另外在这些老设备上要远离双速率光模块,即使绕过了这个检查,它们仍然会带来麻烦。
整条 Lenovo 交换机产品线都是同样的情况,不只是 G8124E。我手上有一台 G8272,把一个思科 - Finisar 的
SFP-10G-LR-S判定为 Unapproved,端口显示 Disabled,链路起不来。是正牌思科光模块,只是不在 Lenovo 的名单上。在 ThinkSystem 这边,NE1032 和 NE1032T 跑的是 CNOS 而不是 ENOS,那边的入口是一条允许不受支持光模块的平台命令,而不是走 boot loader 那套技巧。我自己没跑过那条命令,所以在计划停机窗口之前先在你自己的设备上核实语法。底层的规律没变:固件都是拿 EEPROM 里的厂商字符串去对照一份名单,不认识的就禁用掉。
补充一点:这个绕过设置不一定能在固件升级后保留下来。如果你刷了新镜像,端口又都死了,先回到串口控制台查一下
printenv,再考虑拔模块,这个变量很可能就是被清掉了。另外也不要把厂商的解锁开关当成普遍可靠的东西。在跑 IOS-XE 16.9.x 的 Catalyst 9200 上,由于 CSCvk03296 这个缺陷,
service unsupported-transceiver完全不起作用,大家改用的是全局配置里的no errdisable recovery cause gbic-invalid,这样端口就不会被 err-disable 掉,FS 和 Cables and Kits 的模块也就能正常工作了。厂商不同,教训一样:文档里写的那个开关,和真正管用的那个开关,不一定是同一个。