引言: 单位新购置了华为交换机用于替换部分老旧交换机,原有部分其他品牌的交换机仍在使用中,新旧交换机之间主要通过电口进行对接。替换完成后,一部分交换机之间无法沟通,一部分交换机在上网用户数量过多时出现包丢失现象。查看交换机资料发现,有些原有交换机不支持自动协商功能。将新购置的交换机修改为非自动协商模式,网络故障消失。
单位新购置了华为S3700交换机用于替换部分老旧交换机,原有部分H3C交换机和TP-LINK交换机仍在使用中,新旧交换机之间主要通过电口进行对接。替换完成后,进行试运行测试,发现有部分交换机之间无法沟通,有部分交换机之间可以沟通,但在上网用户数量过多时速率特别慢,会出现数据包丢失现象。
通过观察无法工作交换机的指示灯,发现有部分指示灯状态为常灭,部分交换机交换机的工作指示灯为闪烁,这说明有部分接口没有正常工作,无法正常收发报文,有一部分可以正常收发报文。进入华为S3700交换机的配置管理界面,使用display interface命令查看接口当前物理状态,发现不能正常收发报文的接口物理状态为Down,可以正常收发报文的接口物理状态为UP。
因为原有线路没有更换,主干使用光纤收发器,末端连接使用的是六类网线,所以基本可以排除线路故障,但是确实存在部分六类RJ45水晶头同交换机连接不紧密的现象,存在松动现象。对部分连接不紧密的水晶头更换成了超五类网线(六类线线芯较超五类线芯细,六类线和普通RJ45水晶头无法匹配使用,六类线只能匹配六类RJ45水晶头,超五类网线也无法插入六类RJ45水晶头),更换完成后,交换机接口仍然无法正常连通。
检查网线周边的强电并检测网线周边的环境,没有发现私拉强电、强弱电并行。经检测,网线周边的电磁环境也属正常,温度也均在正常范围内。
对故障交换机的所有的接口、单板进行了检测,没有发现交换机变形、偏位现象。使用新购华为交换机替换原有 H3C、TP-LINK交换机,发现网络恢复正常,由此判断可能是不同类型交换机之间兼容性不够导致故障出现。
进入华为S3700交换机的配置管理模式,使用display interface ethernet brief命令查看S3700交换机各接口的工作模式,发现接口的工作模式为自动协商,速率为100M,半双工模式(如图1)。初步怀疑可能是不同类交换机自动协商失败造成交换机之间无法正常工作。
在华为S3700交换机的配置管理模式下,使用undo negotiation auto命令修改为非自动协商模式,再使用auto duplex full命令修改为全双工工作模式,接口指示灯开始闪烁,故障物理接口状态变为UP,故障排除,报文可以正常收发。
查看了H3C和TP-LINK交换机资料,发现两种类型的交换机过于老旧,有部分交换机不支持自动协商功能。在不通的交换机接口上因无法自动协商,造成不能正常通信,而在存在丢包的交换机接口上,因协商为半双工,当用户不多时,不会出现丢包现象,当用户数过多时,因存在冲突导致出现丢包现象。
自动协商主要功能是通过物理链路两端的设备交互信息而自动选择同样工作参数的机制。协商的主要内容包括双工模式、运行速率以及流控等参数。目前百兆以太网的标准为IEEE 802.3u,千兆以太网的标准为IEEE 802.3z,其中IEEE 802.3z为强制功能,所有的设备必须遵循并且默认启用自动协商,所以一般故障出现在十兆、百兆以太网。
图1 华为S3700交换机各接口工作模式
自动协商机制有两种,一种称为Autonegotiation,另一种称为Autosensing/Speed Detection。10M以太网接口在协商之前会发送 LTP(Link Test Pulse),该脉冲用以检测链路是否应用UP,而100M以太网接口在协商之前会发送FLP(Fast link Pulse)。FLP可以理解为一组LTP和数据脉冲的组合,FLP发出后,如果对端为较旧的设备则会将FLP识别为LTP,最后就造成协商不一致,造成故障。一般存在以下几种情况。
1.两台支持自动协商的设备互连。设备A和设备B都向外发送FLP,每台设备收到对端的FLP后在自己的FLP中将确认BIT位置位,然后每台设备将自己的速率和双式设置双方都支持的最优模式,并开始发送FAST ETHERNET IDLE,然后链路就UP了,这样就协商成最佳状态。
2.一台自协商设备和10BASE-T设备互连。自协商设备向外发送FLP,而10BAST-T则发送LTP。当LTP到达自协商设备后,自协商设备会将本端置为10M半双工,从而协商的结果是10M半双工,但实际上是可以达到10M全双工,这就是协商失败的结果。
3.一台自协商设备和100BASE-T设备互连。自协商设备向外发送FLP,而100BASE-T设备发送FAST THERNET IDLEA。自协商设备发送的脉冲到达对端的IDLE后,将本端置为100M半双工,并开始发送FAST ETHERNET IDLE,这样协商的结果是100M半双工,但实际上可以达到100M全双工,这也是协商失败的结果。
4.A端设备是自动协商状态,B端设备虽然支持自动协商,但却被设置为100M全双工,但是却被关闭协商能力。当A端设备发送FLP,而B端设备发送FAST ETHERNET IDLE。A端设备收到B端设备的IDLE后就将本端设备为100M半双工,而B端设备却是强制100M全双工,这样会出现AB两端同时发送一种数据帧,A端设备认为发生了冲突并破坏自己的帧并丢弃B端设备的帧,然后重发自己的帧,但是B端设备却不会重发自己的帧,这种A端会收到很多延迟冲突,而B端设备却会收到很多CRC错误帧,这样就会造成数据发送故障。
网络设备的接口目前大部分都支持自动协商机制,但对于不同厂家不同产品在理解和使用自动协商机制时存在差异,在不同厂家不同类型的交换机互连不通时,可先尝试将接口设置为自动协商模式,当协商不成功时,可修改为非自动协商模式。如果仍未成功时,可根据交换机实际情况和线路情况,使用speed 10|100|1000命令,将速率强制设置成10M、100M或1000M,使不同类型不同厂家的交换机速率保持一致,如果不一致就容易造成数据发送故障。