Catalyst 3750 把 CWDM SFP 显示成 SX:要改 EEPROM 里的哪些字段
在接入层拉一个 CWDM 环,汇聚层是 Catalyst 3750。用的是普通的、没有厂商编码的模块,外壳上标着 TTG965D1,波长范围 1470-1610 nm。链路能起来,流量也能跑,但交换机把它们当成了 SX 模块:不管是台账还是监控,显示的都是 SX 而不是 CWDM,所以"端口 - 波长"这张表只能靠手工和记忆维护。
- 汇聚层是 Catalyst 3750,上行接在 SFP 端口上
- CWDM SFP,1470-1610 nm,标着 TTG965D1
- 模块里已经刷了 Cisco SX 的厂商镜像——手头正好有这个
- 有编程器,SX、LH、ZX 的 dump 也都有
sw#show idprom interface GigabitEthernet1/0/25
General SFP Information
Transceiver Type = 1000BaseSX SFP
已经做过的事:
- 挨个试了 SX、LH、ZX:输出里的类型确实老老实实跟着镜像变,但不管怎么试都不会出现 CWDM;
- 把模块换到另一个端口、换到相邻的 3750 上,情况一样,说明问题不在端口,也不在具体某台设备;
- 逐字节对比了 SX 和 LH 的 dump,想搞清楚类型到底存在哪里,但没有能用的 CWDM 镜像,没法拿来比对。
问题的核心是:EEPROM 第一页里哪些字段决定了 3750 会把它写成 CWDM-1550 SFP,改一下手头的 SX 镜像够不够,还是必须要一个完整的 CWDM 镜像?
Comments 4
既然链路已经起来、流量也能跑,剩下的就纯粹是个面子活:让交换机对这个模块的描述说对话。这比端口压根不认这个模块的情况要简单得多,不过修法还是一样,都得走 EEPROM。
把
show idprom interface的完整输出贴出来,不要只贴三行。除了类型之外,那里面还有 vendor name、part number 和描述,通常是一起说谎的,因为整个用的就是同一个镜像。顺便说一下你用什么烧的,烧完读回来是不是真的和你写进去的一致:有时候模块表面上接受了写入,实际上什么都没落进去。3750 不会去测波长,它只是读 A0 前几个字节里的身份信息,然后把里面写的东西显示出来。你刷了 SX 镜像,得到 SX,完全合理。需要的是带对应 part number 和描述的 CWDM 镜像,这样输出里才会出现 CWDM-1550 SFP,这里面没有别的魔法。
关于刷写本身:256 字节的 dump 里真正要紧的是前 128 字节,后面是厂商区,完全可以不动。改完字段之后一定要重新计算校验和,不然交换机会在读到类型之前就先把这个模块判为不合格。
这个思路不是 3750 特有的。在 3560、HP J8692A、EX4200-24F、D-Link 和 Extreme 上,便宜的 WDM 模块都是这么弄起来的——写入这台设备认为是自己人的模块镜像:GLC-LX、GLC-BX-D 和 GLC-BX-U,J4858C 和 J4859C,DEM-310GT,3CSFP92,Finisar 那边的话是 FCMJ-8521-3。编程器也不一定要买现成的,当年流传过一个自制方案的图纸,叫 serp-0.3。
补充一点,也稍微唱个反调:为每台设备都去找"正确的镜像",是所有办法里最费时间的一条。如果手头有一个这个端口能正常接受、正常识别的模块,用编程器从它身上取一份 dump,写进有问题的那个,然后改一下序列号,免得两个一模一样的模块同时出现在一个箱子里。
两点补充。有一部分国产模块,即便发了解锁命令也不让重写:写入就是过不去,这种情况只能换一批货。另外 HP 这边的表现是非黑即白的——要么交换机什么都吃,要么只认自己签名过的模块,中间状态我没见过。
个别端口上也会出现奇怪的情况。在 CSS106-5G-1S 上,一个确认能正常工作、在别的设备上跑得好好的模块,某个具体端口就是不认,直到往它身上写进了邻居那个模块的 dump 才行。
还有第三条路,如果完全不想折腾编程器的话:下单的时候直接指定目标设备。供应商会针对具体平台给模块编码——比较常见的有 SNR、Modultech、ANDPRO,他们有针对 Cisco、Juniper、Extreme、Alcatel、Arista、Huawei、D-Link、Eltex 和 QTECH 的固件库,有些还能给已经买到手的模块重新编码,也有的会在发货前先测一下链路。
老实说一句:我自己只这么买过铜模块,SNR-SFP-GE-T,没验证过针对 3750 的 CWDM 模块。所以付款之前一定要确认清楚他们有没有针对你这个具体平台的固件库,别等付完款才发现没有。