光模块能收发光状态却为down的问题

前言

这是最近遇到一件比较尴尬的事情,由于我们服务器部署在某机房,业务网络是走光纤传输,机房那边通知已经配置好了,让我这边调通业务网络,结果远程调试发现根本不通!

问题现状

  • 物理端口down状态
  • 光模块正常收发光
1
2
3
4
5
6
7
8
9
Current Tx bias(mA)                  :15.00
Default Tx bias High Threshold(mA) :90.00
Default Tx bias Low Threshold(mA) :0.00
Current Rx Power(dBM) :-4.49
Default Rx Power High Threshold(dBM) :1.00
Default Rx Power Low Threshold(dBM) :-27.96
Current Tx Power(dBM) :-6.38
Default Tx Power High Threshold(dBM) :-1.50
Default Tx Power Low Threshold(dBM) :-10.50

排查

起初是安排驻地的同事去机房协助,他反馈的是光纤线没有发光,我误以为是机房接错了,没把我们的光纤线接上,然后找他们的机房网络负责人反馈,包括光纤线使用的是单模还是多模?对端模块类型是单模还是多模?如果是单模是SC还是LC型?模块多少G?端口速率是多少?与我们设备连接的接口模式是路由还是交换等等一系列问题,反馈确认后都没问题,那么问题出在哪儿呢?我们之间互联已经排除物理链路问题,那么就是逻辑层面的问题,那就先定位到接口协商,把接口协商类型自动改为强制,接口状态就变成UP状态。

解决办法

进入设备更改接口协商模式

1
2
3
<USG6300E>system-view
[USG6300E]interface GigabitEthernet 0/0/1
[USG6300E GigabitEthernet 0/0/1]undo negotiation auto

配置完成后记得保存配置

事后分析原因

这种端口无法正常通信就是设备之间协商模式不同导致的问题!问题在于一端设置为自协商,一端设置为强制,自协商端发送/C/码流,强制端发送/I/码流,强制端无法给对端提供本端的协商信息,也无法给对端返回Ack应答,故自协商端DOWN。但是强制端本身可以识别/C/码,认为对端是与自己相匹配的端口,所以直接设置本端端口为UP状态,但是两端均设置为强制模式,双方就会互相发送/I/码流,一端接收到/I/码流后,认为对端是与自己相匹配的端口,直接设置本端端口为UP状态。