端口逻辑环路闹故障
2017-11-23
故障现象
某气象数据采集站地处高山地区,网络通过协议转换器、Cisco 2950交换机等网络设备连接到上级数据采集处理中心。近日因雷雨天气影响,关闭所有网络设备。天气转好后对网络设备开机加电,网络设备指示灯显示状态异常,上级节点接入交换机端口物理指示灯不亮,查看网络信道通断监控软件显示网络中断。
故障点判定
该数据采集站点的网络拓扑结构比较简单,数据信息是通过光端机、协议转换器等通信设备接入上级节点。首先对网络信道联通检查,将上级端协议转换器进行环路,发现双方协议转换器指示灯状态均正常,经过信道检查,发现网络通信信道正常,问题可能出现在两端的交换机中。
协议转换器是通过RJ45网络接口与交换机连接,直接用一根平行双绞线连接采集中心协议转换器和笔记本电脑,设置笔记本电脑的IP地址与远端数据采集设备在同一网段,通过Ping方法检查采集中心协议转换器与外站数据采集设备之间的网络,经检查网络连通正常,数据没有出现丢包现象。因此,问题很有可能出现在采集中心接入交换机中。
故障现象分析
仔细检查采集中心的接入交换机,发现下连端口相对应的LED状态灯也将由正常的绿色变为暗黄色。因此,进一步判断故障出现在采集中心的接入交换机中。通过telnet登录交换机,并在特权模式下使用show interface status命令查看交换机的端口状态,状态信息如下:
从交换机端口返回的状态信息不难看出,与采集中心协议转换器连接的交换机端口fa0/1状态为“errdisabled”,即交换机接口不可用。当端口处于errdisabled状态,将没有任何流量从该端口被转发出去,也将不接收任何进站流量,因而其状态指示灯会变成暗黄色。
笔者通过“show int status err-disabled”命令,查看产生err-disabled的原因,返回的具体信息如下所示:
从采集中心接入交换机的日志信息可以看出,造成交换机端口状态为“errdisabled”的原因是网络信道发生环路。通过“SHOW LOG”命令可以查看交换机B环路发生的原因,日志信息如下:
分析交换机日志可以得出,造成交换机环路发生的原因是交换机keepalive信息包在F0/1口中检测到环路,故障原因得以确定。Cisco 2950交换机默认情况下会从所有端口向外发送keepalive信息,而一些不通过交换机协商的spanning-tree(生成树协议)可能会发生错误,当keepalive信息由交换机的端口发出后,该端口又收到该信息,形成逻辑环路,端口被置err-disabled状态,网络就此中断。
故障排除
通过上面分析,造成交换机环路的原因是keepalive信息从一个端口发出后,又被该端口接收,使得该端口形成逻辑环路,状态变为“err-disabled”。因此,在不升级交换机系统版本的前提下,可以通过以下两种方法解决。
第一种方法是取消由环路引起端口错误保护。具体配置命令如下:
然后进入Fast Ethernet0/1, 执 行no shutdown重新启动端口。
第二种方法是关闭交换机的keepalive,禁止所有端口向外发送keepalive信息。在交换机配置模式下对所有接口关闭keepalive,命令如下:
当然,我们也可以升级交换机IOS版本,Cisco交换机12.1EA之前的IOS版本,默认情况下所有端口都发送keepalive信息,造成端口形成逻辑环路,端口状态变为“err-disabled”,而在12.1EA之后的版本,默认关闭keepalive,因此可以将交换机IOS升到12.2SE或者更高版本。
故障原因引申
一般导致交换机接口出现err-disable状态有以下几个常见原因。
1.以太网信道(EC)错误配置
如果要让EC能够正常工作,参与到EC绑定的端口的配置,必须是一致的,比如处于同一VLAN,trunk模式相同,速率和双工模式都匹配等。如果一端配置了EC,而另一端没有配置EC,STP将关闭配置了EC一方的参与到EC中的端口,并且当PAgP的模式是处于on模式的时候,交换机是不会向外发送PAgP信息去进行协商的(它认为对方是处于EC),这种情况下STP判定出现环路问题,因此将端口设置为errdisabled状态。
2.双工模式不匹配
双工模式不匹配的问题比较常见,由于速率和双工模式自动协商的故障,常导致这种问题的发生,可以使用show interfaces命令查看双方端口的速率和双工模式,后期版本的CDP也能够在将端口处于errdisabled状态之前发出警告日志信息。另外,网卡的不正常设置,也将引起双工模式的不匹配。解决办法如双方不能自动协商,使用duplex命令修改双方双工模式使之一致。
3.BPDU Guard
通常启用了快速端口(PortFast)特性的端口用于直接连接端工作站这种不会产生BPDU的末端设备,由于PortFast特性假定交换机的端口不会产生物理环路,因此当在启用了PortFast和BPDU Guard特性的端口上收到BPDU后,该端口将进入err-disabled状态,用于避免潜在环路。
4.UDLD
UDLD协议允许通过光纤或铜线相连的设备监控线缆的物理配置,并且可以检测是否存在单向链路。如果检测到有单向链路,UDLD将关闭相关端口并发出警告日志信息,单向链路可以引起一系列的问题,最常见的就是STP拓扑环路。注意,为了启用UDLD,双方必须都支持该协议,并且要单独在每个端口启用UDLD,如果只在一方启用了UDLD,同样的会引起端口进入errdisabled状态。
5.链路振荡错误
链路振荡(flap)是指短时间内端口不停地处于up/down状态,如果端口在10秒内连续振荡5次,端口将被设置为err-disabled状态。引起链路震荡的常见因素可能是物理层的问题,比如GBIC的硬件故障等,因此解决这种问题通常先从物理层入手。
6.回环(loopback)错误
回环错误就是本文中故障产生的原因,当keepalive信息从交换机的出站端口被发送出去后,又从该接口收到该信息,就会发生回环错误,交换机默认情况下会从所有端口向外发送keepalive信息,由于STP没能阻塞某些端口,导致这些信息可能会被转发回去形成逻辑环路。出现这种情况后,端口将进入errdisabled状 态,从Cisco IOS 12.2SE之后的版本,keepalive信息将不再从光纤和上行端口发送出去,因此解决这种问题的方案是升级Cisco IOS软件版本到12.2SE或后续版本。
7.违反端口安全(Port Security)策略
端口安全特性提供了根据MAC地址,动态的对交换机端口进行保护的特性,违反该策略将导致端口进入err-disabled状态,端口安全的原理和配置这里就不再赘述。
写在最后
通常确定交换机故障后,重启交换机或者更换交换机接入端口,即可恢复通信,但这类方法不能解决根本问题。管理维护人员应“顺藤摸瓜”,通过故障现象找出问题根本所在,从源头上解决问题。