交换机端口锁死的原因及解决办法

这几天连续遇到交换机端口err-disabled,没在意,今天竟然在关键链路上出现了这个情况,用show inter gi0/17的时候看到端口关闭,括号里面有这个提示,看来不细心会带来大麻烦,如何启用因错误而锁死的端口一直没搞过, 情急之中关闭端口再开启端口就发现已经正常了.再后来又接收到错误,提示双方双工不匹配,后来将对方改成全双工就可以了,后来查资料看到,双工不匹配会导致端口锁死,以下是比较全的
看着移动公司的员工在那里看到错误视苦无睹,还不明白原因的时候,突然觉得他们不过就是敲命令快点儿而已,再看到来面试的人要求那么高技术无亮点的时候突然觉得有些悲哀

思科交换机出现err-disable的原因及解决方法

err-disable的几个常见原因:
引用整理
1. EtherChannel misconfiguration
2. Duplex mismatch
3. BPDU port guard
4. UDLD
5. Link-flap error
6. Loopback error
7. Port security violation
1当FEC两端配置不匹配的时候就会出现err-disable。假设Switch A把FEC模式配置为on,这时SwitchA是不会发送PAgP包和相连的Switch B去协商FEC的,它假设Switch B已经配置好FEC了。但实事上SwtichB并没有配置FEC,当Switch B的这个状态超过1分钟后,SwitchA的STP就认为有环路出现,因此也就出现了err-disable。解决办法就是把FEC的模式配置为 channel-group 1 modedesirable non-silent这个意思是只有当双方的FEC协商成功后才建立channel,否则接口还处于正常状态。

2第二个原因就是双工不匹配。一端配置为half-duplex后,他会检测对端是否在传输数据,只有对端停止传输数据,他才会发送类似于ack的包来让链路up,但对端却配置成了full-duplex,他才不管链路是否是空闲的,他只会不停的发送让链路up的请求,这样下去,链路状态就变成err- disable了。

3 第三个原因BPDU,也就是和portfast和BPDUguard有关。如果一个接口配置了portfast,那也就是说这个接口应该和一个pc连接,pc是不会发送spanning-tree的BPDU帧的,因此这个口也接收BPDU来生成spanning-tree,管理员也是出于好心在同一接口上配置了BPDUguard来防止未知的BPDU帧以增强安全性,但他恰恰不小心把一个交换机接到这个同时配置了portfast和BPDUguard 接口上,于是这个接口接到了BPDU帧,因为配置了BPDU guard,这个接口自然要进入到err-disable状态。解决办法:nospanning-tree portfast bpduguard default,或者直接把portfast关了。

4第四个原因是UDLD。UDLD是cisco的私有2层协议,用于检测链路的单向问题。有的时候物理层是up的,但链路层就是down,这时候就需要 UDLD去检测链路是否是真的up的。当AB两端都配置好UDLD后,A给B发送一个包含自己portid的UDLD帧,B收到后会返回一个UDLD帧,并在其中包含了收到的A的port id,当A接收到这个帧并发现自己的portid也在其中后,认为这链路是好的。反之就变成err-disable状态了。假设A配置了UDLD,而B没有配置UDLD:A给B发送一个包含自己port id的帧,B收到后并不知道这个帧是什么,也就不会返回一个包含A的portid的UDLD帧,那么这时候A就认为这条链路是一个单向链路,自然也就变成 err-disable状态了。

5 第五个原因就是链路的抖动,当链路在10秒内反复up、down五次,那么就进入err-disable状态。

6第六个原因就是keepaliveloopback。在12.1EA之前,默认情况下交换机会在所有接口都发送keepalive信息,由于一些不通交换机协商spanning-tree可能会有问题,一个接口又收到了自己发出的keepalive,那么这个接口就会变成err-disable了。解决办法就是把keepalive关了。或者把ios升到12.2SE

7 最后一个原因,相对简单,就是由于配置了port-security violation shutdown。这个太简单,就不解释啦。


err-disable的故障排查
关于接口处于err-disable的故障排查(转发)
故障症状:线路不通,物理指示灯灭或者显示为橙色(不同平台指示灯状态不同)
show interface 输出显示接口状态:
FastEthernet0/47 is down, line protocol is down (err-disabled)
接口状态是err-disable。
sw1#show interfaces status err-disable
Port Name Status Vlan Duplex Speed Type
Fa0/47 err-disabled 1 auto auto 10/100BaseTX
如果出现了接口状态为err-disable,
show interfaces status err-disabled命令能查看触发err-disable的原因。
下面示例原因为bpduguard,在连接了交换机的端口配置了spanning-tree bpduguard enable。
sw1#show interfaces status err-disabled
Port Name Status Reason Fa0/47 err-disabled bpduguard
接口产生err-disable的原因可以由以下的命令来查看,系统缺省的配置是所有列出的原因都能导致接口被置为err-disable。
sw1#show errdisable detect
ErrDisable Reason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
security-violatio Enabled
channel-misconfig Enabled
psecure-violation Enabled
vmps Enabled
loopback Enabled
unicast-flood Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
l2ptguard Enabled
sfp-config-mismat Enabled
gbic-invalid Enabled
dhcp-rate-limit Enabled
storm-control Enabled
ilpower Enabled
arp-inspection Enabled
community-limit Enabled
invalid-policy Enabled
从列表中,我们可以看出常见的原因有udld,bpduguard,link-flap以及loopback等。
具体由什么原因导致当前接口err-disable可以由show interface status err-disable来查看。
在接口模式下采用shutdown,no shutdown进行手动的激活。
在缺省配置下,一旦接口被置为err-disable,IOS将不会试图恢复接口。
这个可以由show errdisable recovery来查看,timer status下面所有的值都是disable。
下面的示例中,由于手工配置了bpduguard恢复,所以timer status的值变为Enable。
sw1#show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Disabled
security-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
l2ptguard Disabled
psecure-violation Disabled
sfp-config-mismat Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
storm-control Disabled
arp-inspection Disabled
loopback Disabled
Timer interval: 300 seconds
Interfaces that will be enabled at the next timeout:
配置IOS重新激活errdisable的接口,使用以下命令:
sw1(config)#errdisable recovery cause bpduguard
sw1(config)#errdisable recovery cause ?
all Enable timer to recover from all causes
arp-inspection Enable timer to recover from arp inspection error
disable state
bpduguard Enable timer to recover from BPDU Guard error disable
state
channel-misconfig Enable timer to recover from channel misconfig disable
state
dhcp-rate-limit Enable timer to recover from dhcp-rate-limit error
disable state
dtp-flap Enable timer to recover from dtp-flap error disable
state
gbic-invalid Enable timer to recover from invalid GBIC error disable
state
l2ptguard Enable timer to recover from l2protocol-tunnel error
disable state
link-flap Enable timer to recover from link-flap error disable
state
loopback Enable timer to recover from loopback disable state
pagp-flap Enable timer to recover from pagp-flap error disable
state
psecure-violation Enable timer to recover from psecure violation disable
state
security-violation Enable timer to recover from 802.1x violation disable
state
sfp-config-mismatch Enable timer to recover from SFP config mismatch error
disable state
storm-control Enable timer to recover from storm-control error disable
state
udld Enable timer to recover from udld error disable state
unicast-flood Enable timer to recover from unicast flood disable state
vmps Enable timer to recover from vmps shutdown error disable

配置完上述命令后,IOS在一段时间后试图恢复被置为err-disable的接口,这段时间缺省为300秒。但是,如果引起err-disable的源没有根治,在恢复工作后,接口会再次被置为err-disable。
调整err-disable的超时时间,可以使用以下命令:
sw1(config)#errdisable recovery interval ? <30-86400> timer-interval(sec) 可以调整在30-86400秒,缺省是300秒。
如果产生err-disable的原因是udld,下面有一条命令非常管用:
sw1#udld reset
No ports are disabled by UDLD. 同时,接口在被置为err-disable的时候,通常有一系列的日志产生,
如下:
*Mar15 15:47:19.984: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on portFastEthernet0/47 with BPDU Guard enabled. Disabling port.
sw1# *Mar 15 15:47:19.984: %PM-4-ERR_DISABLE: bpduguard error detected on Fa0/47, putting Fa0/47 in err-disable state
sw1#*Mar 15 15:47:21.996: %LINK-3-UPDOWN: Interface FastEthernet0/47,changed state to down 收集这些日志也非常管用。所以建议配置一个syslog server,收集log信息。
sw1#show interfaces status Port Name Status Vlan Du... 开启errdisable功能,这样可以使用show errdisable来查看引发errdisable的原因是什么,再更加信息内容进行解决。
你要是想不影响使用的话,先用 no errdisable detect cause loopback 执行一下,将已经死掉的端口,no sh一下如果没问题,肯定是环路了,你可再找时间,对怀疑有问题的switch用拔插法,一个一个拔掉网线去查,当然,有更有效的方法,你可查看有问题的 switch的所有rj45和gi口的状态,哪个有errdisable信息哪个就有问题。
switch#show interfaces status err-disabled
Port Name Status Reason
Fa0/22 err-disabled link-flap
Fa0/37 For office in 100K err-disabled link-flap
Fa0/41 unknow err-disabled link-flap
Fa0/42 Training Dc066 err-disabled link-flap
Fa0/45 Production line VM err-disabled link-flap
switch#show errdisable detect
ErrDisable Reason Detection status
----------------- ----------------
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
l2ptguard Enabled
gbic-invalid Enabled
loopback Enabled
switch#show interfaces status err-disabled
Port Name Status Reason
Fa0/22 err-disabled link-flap
Fa0/37 For office in 100K err-disabled link-flap
Fa0/41 unknow err-disabled link-flap
Fa0/42 Training Dc066 err-disabled link-flap
Fa0/45 Production line VM err-disabled link-flap
switch#sh errdisable flap-values
ErrDisable Reason Flaps Time (sec)
----------------- ------ ----------
pagp-flap 3 30
dtp-flap 3 30
link-flap 5 10
( link-flap 这就是因为链路质量不好导致的)
关闭errdisable detect
switch#no errdisable detect cause all



关于接口处于err-disable的故障排查
故障症状:
线路不通,物理指示灯灭或者显示为橙色(不同平台指示灯状态不同)
show interface 输出显示接口状态:
FastEthernet0/47 is down, line protocol is down (err-disabled)
接口状态是err-disable。
sw1#show interfaces status
Port Name Status Vlan Duplex Speed Type
Fa0/47 err-disabled 1 auto auto 10/100BaseTX
如果出现了接口状态为err-disable,show interfaces status err-disabled命令能查看触发err-disable的原因。
下面示例原因为bpduguard,在连接了交换机的端口配置了spanning-tree bpduguard enable。
sw1#show interfaces status err-disabled
Port Name Status Reason
Fa0/47 err-disabled bpduguard
接口产生err-disable的原因可以由以下的命令来查看,系统缺省的配置是所有列出的原因都能导致接口被置为err-disable。
sw1#show errdisable detect
ErrDisable Reason Detection status
----------------- ----------------
udld Enabled
bpduguard Enabled
security-violatio Enabled
channel-misconfig Enabled
psecure-violation Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
vmps Enabled
pagp-flap Enabled
dtp-flap Enabled
link-flap Enabled
l2ptguard Enabled
gbic-invalid Enabled
loopback Enabled
dhcp-rate-limit Enabled
unicast-flood Enabled
从列表中,我们可以看出常见的原因有udld,bpduguard,link-flap以及loopback等。
具体由什么原因导致当前接口err-disable可以由show interface status err-disable来查看。
在接口模式下采用shutdown,no shutdown进行手动的激活。
在缺省配置下,一旦接口被置为err-disable,IOS将不会试图恢复接口。
这个可以由show errdisable recovery来查看,timer status下面所有的值都是disable。
下面的示例中,由于手工配置了bpduguard恢复,所以timer status的值变为Enable
阅读(1063) | 评论(0) | 转发(0) |
0

上一篇:linux软RAID的创建和维护

下一篇:mantis安装与配置--详细success版

相关热门文章
  • 关于C51的中断编程
  • C51中断中的使用 中断优先级 i...
  • C51中断(void timer1(void) i...
  • mysql root用户不能给其他用户...
  • fuser命令
  • 承接自动化测试培训、外包、实...
  • Solaris PowerTOP 1.0 发布
  • For STKMonitor
  • busybox的httpd使用CGI脚本(Bu...
  • 项目小体会
  • 请教想查12个月的数据条数,看...
  • new/delete 和malloc/free 有...
  • ubuntu下hadoop环境的搭建...
  • 求助:如何用Linux架设ISATAP...
  • redhat图形界面不出先登录界面...
给主人留下些什么吧!~~
评论热议

你可能感兴趣的:(交换机端口锁死的原因及解决办法)