Err-disabled网络故障分析
[日志信息]
这两天有两起网络交换机异常警报,在缺省配置下,一旦接口被置为err-disable,IOS将不会试图恢复接口。当端口处于err-disabled状态,将没有任何流量从该端口被传发出去,也将不接收任何进站流量。从交换机外观上看去,端口相对应的LED状态灯也将由正常绿色变为暗黄色或关闭。两起的日志信息分别如下:
案1:
# 接口信息
show int fa1/0/18 br
FastEthernet1/0/18 is down,line protocol is down (err-disabled)
# 查看产生err-disabled的原因
sh int fa1/0/18 status err-disabled
Port Name Status Reason
Fa1/0/18 err-disabled bpduguard
案2:
# 日志信息
show logging
loopback error detected on Gi1/0/46, putting Gi1/0/46 in err-disable state
[常用命令]
# 查看接口状态
show interfaces status
# 查看触发err-disable的原因
show interfaces status err-disabled
# 查询Err-disabled监控事件
show errdisable detect
# 查询Err-disabled自动恢复事件
show errdisable recovery
# 启动Err-disabled自动恢复事件
errdisable recovery cause all
# 变更Err-disabled自动恢复时间
errdisable recovery interval
[常见问题]
EtherChannel misconfiguration
当F EC两端配置不匹配的时候就会出现err-disable。假设Switch A把FEC模式配置为on,这时Switch A是不会发送PAgP包和相连的Switch B去协商FEC的,它假设Switch B已经配置好FEC了。但实事上Swtich B并没有配置FEC,当Switch B的这个状态超过1分钟后,Switch A的STP就认为有环路出现,因此也就出现了err-disable。解决办法就是把FEC的模式配置为channel-group 1 mode desirable non-silent这个意思是只有当双方的FEC协商成功后才建立channel,否则接口还处于正常状态。
Duplex mismatch
双工不匹配。一端配置为half-duplex后,他会检测对端是否在传输数据,只有对端停止传输数据,他才会发送类似于ack的包来让链路up,但对端却配置成了full-duplex,他才不管链路是否是空闲的,他只会不停的发送让链路up的请求,这样下去,链路状态就变成err- disable了。
BPDU port guard
BPDU,也就是和portfast和BPDU guard有关。假如一个接口配置了portfast,那也就是说这个接口应该和一个pc连接,pc是不会发送spanning-tree的BPDU帧的,因此这个口也接收BPDU来生成spanning-tree,治理员也是出于好心在同一接口上配置了BPDU guard来防止未知的BPDU帧以增强安全性,但他恰恰不小心把一个交换机接到这个同时配置了portfast和BPDU guard接口上,于是这个接口接到了BPDU帧,因为配置了BPDU guard,这个接口自然要进入到err-disable状态。解决办法:no spanning-tree portfast bpduguard default,或者直接把portfast关了。
UDLD
UDLD。UDLD是cisco的私有2层协议,用于检测链路的单向问题。有的时候物理层是up的,但链路层就是down,这时候就需要 UDLD去检测链路是否是真的up的。当AB两端都配置好UDLD后,A给B发送一个包含自己port id的UDLD帧,B收到后会返回一个UDLD帧,并在其中包含了收到的A的port id,当A接收到这个帧并发现自己的port id也在其中后,认为这链路是好的。反之就变成err-disable状态了。假设A配置了UDLD,而B没有配置UDLD:A给B发送一个包含自己 port id的帧,B收到后并不知道这个帧是什么,也就不会返回一个包含A的port id的UDLD帧,那么这时候A就认为这条链路是一个单向链路,自然也就变成err-disable状态了。
非常有用的解决UDLD问题命令
reset udld
Link-flap error
链路的抖动,当链路在10秒内反复up、down五次,那么就进入err-disable状态。
Loopback error
keepalive loopback。在12.1EA之前,默认情况下交换机会在所有接口都发送keepalive信息,由于一些不通交换机协商spanning-tree 可能会有问题,一个接口又收到了自己发出的keepalive,那么这个接口就会变成err-disable了。解决办法就是把keepalive关了。或者把ios升到12.2SE。交换机有环路形成也是检查方向。
Port security violation
由于配置了port-security violation shutdown