Zyxel XGS3700 和 GS2210 的 Web 界面里没有 DDMI 页面,GS1910 却能看到
我负责一个站点上混用的 Zyxel 设备,正在给光纤上联口搭建一个非常基础的光路健康检查:每个端口的温度和接收光功率,这样能在用户反馈之前就发现链路正在劣化。
涉及的设备:
- Zyxel GS1910,较老的接入交换机,带 SFP 上联口
- Zyxel XGS3700,上联口用的是 SFP+ 模块
- Zyxel GS2210,用的是 1G SFP 模块
- 所有模块都是 Zyxel 原厂的,没有第三方的
在 GS1910 上,DDMI 数值就直接摆在 Web 界面里,我也是习惯了从那里读数据。另外两台设备上,我在哪里都找不到这个页面:
# what each box gives me in the web GUI
GS1910 : DDMI page - temperature, supply voltage, bias current, Rx/Tx power
XGS3700 : nothing under the port pages
GS2210 : nothing under the port pages
我已经做过:
- 把两台交换机的监控和端口相关页面整个翻了一遍
- 重新插拔了一个模块,以防交换机根本没读到它
- 又回到 GS1910 确认一下,免得我在找一个根本不存在的页面
所以:XGS3700 和 GS2210 上的 DDMI 数据是藏在某个我没想到的菜单里,还是说这两个系列的 Web 界面根本就不提供这个功能?如果有别的办法能拿到这些数值,我宁愿用那个办法,也不想去抓屏幕。
Comments 3
这个页面不是被藏起来了,它根本就不存在。在 XGS3700 和 GS2210 上,光模块诊断信息只能从命令行拿到:
每个端口返回的是一段纯文本:先是模块身份信息,然后是五个测量值——偏置电流、Tx 功率、Rx 功率、供电电压和温度。和 GS1910 那个页面上显示的是同一批数字,只是没有页面。
这两类设备之所以不一样,是版本历史的问题,不是硬件的问题。Zyxel 是从固件 4.60 开始把 DDMI 页面加进 Web 界面的,而这两个系列从来就没有被列入接收那条分支的计划,所以不会有任何更新能把这个页面带给它们。CLI 是通往这些数据的路径,而且会一直是唯一的路径。
对你正在搭建的这套健康检查来说,这意味着轮询逻辑要走两条代码路径:凡是有 4.60 及以上固件的设备走 SNMP 或者 GUI,这两个系列走文本解析。不算优雅,但 CLI 的输出格式很稳定,按端口拆分也不难,两条路径最终拿到的都是同样的五个数值。
在继续翻菜单之前,先把问题拆成两半:你需要的是那个具体的 Web 页面,还是只需要那几个数值?在这个系列上,这是两个不同的问题,答案也不一样。
另外说一下每台设备跑的是哪个固件分支会很有帮助,因为这决定了 GUI 里到底有没有诊断页面这回事,也确认一下模块本身支不支持这个功能。一个没有诊断页面的模块,不管是 GUI 还是命令行都不会显示任何东西,那再怎么翻菜单也没用。
值得了解一下这些字段消失的另一种原因,因为从监控的角度看现象是一模一样的。
在我这边一台 FortiGate 上,
get system interface transceiver会打印温度、电压、Tx 偏置、Tx 功率和 Rx 功率,结果差不多一半端口返回的是 N/A。最后查出来是三种不同的原因:一类是模块根本没有诊断页面,这在老旧或低端的 1G SFP 上很常见;一类是无源直连铜缆,这本来就是纯电气连接,一开始就没有任何光学数据可以报告;还有恰好一个模块是真的读取失败——那一个旁边带着「not detected」的提示,最后查出来是没插好。我现在用的规则是:链路健康的情况下出现 N/A 不值得深究,N/A 同时伴随「not detected」才是物理层面的问题。思科在模块这一级也有同样的区分,GLC-SX-MM 没有 A2h 诊断页面,所以
show interface transceiver detail对它没什么可打印的,而 MMD 版本就有。除此之外光学部分完全一样。