交换机端口状态出现errdisabled的情况分析及解决方法.docx
《交换机端口状态出现errdisabled的情况分析及解决方法.docx》由会员分享,可在线阅读,更多相关《交换机端口状态出现errdisabled的情况分析及解决方法.docx(9页珍藏版)》请在冰豆网上搜索。
交换机端口状态出现errdisabled的情况分析及解决方法
Cisco交换机端口出现“err-disabled”状态的情况分析
1、引言
通常情况下,如果交换机运转正常,其中端口一项显示为启用(enable)状态.但是如果交换机的软件(CISCOIOS/CatOS)检测到端口的一些错误,端口将随即被关闭.也就是说,当交换机的操作系统检测到交换机端口发生些错误事件的时候,交换机将自动关闭该端口.
2、现象描述
当端口处于err-disabled状态,将没有任何流量从该端口被转发出去,也将不接收任何进站流量.从交换机外观上看去,端口相对应的LED状态灯也将由正常的绿色变为暗黄色(或者叫做橘黄色,官方给的说法是amber,琥珀色).同时使用查看端口状态的一些命令,比如showinterfaces,也会看到端口是处于err-disabled状态的.还有种情况是,当交换机因一种错误因素导致端口被禁用(err-disabled),这种情况通常会看到类似如下日志信息:
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
ReceivedBPDUonportGigabitEthernet0/1withBPDUGuardenabled.Disablingport.
%PM-SP-4-ERR_DISABLE:
bpduguarderrordetectedonGi0/1,puttingGi0/1inerr-disablestate
err-disabled的两个作用的:
1.告诉管理员端口状态出错.
2.消除因某个端口的错误导致所有端口,或者整个模块功能的出错.
err-disabled状态的起因:
该特性最初是用于处理特定的冲突形势,比如过分冲突(excessivecollisison)和后期冲突(latecollision).由于CSMA/CD机制的制定,当发生16次冲突后帧将被丢弃,此时发生excessivecollision;而latecollision是指在发送方发送了64个字节之后,正常的和合法的冲突就不可能发生了.理论上正常的网络传播一定会在此之前就完成了,但是如果线路过长的话会在前64个字节完成后发生冲突,后期冲突和发生在前64个字节的冲突最明显的区别是后者网卡会自动重新传输正常的冲突帧,但不会重传后期冲突的帧.后期冲突发生在时间超时和中继器的远端.一般而言,这样的冲突在本地网段会简单地判断为一个帧校验序列(FCS)错误.引起这种错误的可能原因有:
1.线缆的不规范使用,比如超出了最大传输距离或者使用了错误的线缆类型.
2.网卡的不正常工作(物理损坏或者驱动程序的错误).
3.端口双工模式的错误配置,如双工不匹配.
如下是端口处于err-disabled状态的几种原因:
1.双工不匹配.
2.端口信道的错误配置.
3.违反BPDU守护(BPDUGuard)特性.
4.单向链路检测(UDLD).
5.检测到后期冲突.
6.链路振荡.
7.违反某些安全策略.
8.端口聚合协议(PAgP)的振荡.
9.层2隧道协议(L2TP)守护(L2TPGuard).
侦听限速.
3、处理过程
可以使用showinterfaces命令查看端口状态,如:
switch#showinterfacesgigabitethernet0/1status
Port?
?
?
Name?
?
Status?
?
?
?
?
?
?
?
?
Vlan?
?
?
?
?
Duplex?
?
?
?
Speed?
?
?
?
Type
Gi0/1?
?
?
?
?
?
?
err-disabled?
?
?
?
100?
?
?
?
?
?
?
?
?
?
?
full?
?
?
?
?
1000?
?
?
?
?
?
1000BaseSX
当交换机的某个端口处于err-disabled状态后,交换机将发送为什么这么做的日志信息到控制台端口.也可以使用showlog查看系统日志,如:
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
ReceivedBPDUonportgigabitethernet0/1withBPDUGuardenabled.Disablingport.
%PM-SP-4-ERR_DISABLE:
?
?
bpduguarderrordetectedonGi0/1,puttingGi0/1inerr-disablestate
%SPANTREE-2-CHNMISCFG:
STPloop-channel11/1-2isdisabledinvlan1
可以使用showinterfacesstatuserr-disabled命令查看处于err-disabled状态的原因,如:
switch#showinterfacesstatuserr-disabled
PortNameStatusReasonErr-disabledVlans
Fa0/1err-disabledloopback
当出现err-disabled状态后,首先要做的,是找出引起该状态的根源,然后重新启用该端口;如果顺序不一致,将导致该端口再次进入err-disabled状态.
4、原因分析
以比较常见的做为例子:
1).以太网信道(EC)的错误配置:
如果要让EC能够正常工作,参与到EC绑定的端口的配置,必须是一致的,比如处于同一VLAN,trunk模式相同,速率和双工模式都匹配等等.如果一端配置了EC,而另一端没有配置EC,STP将关闭配置了EC一方的参与到EC中的端口.并且当PAgP的模式是处于on模式的时候,交换机是不会向外发送PAgP信息去进行协商的(它认为对方是处于EC).这种情况下STP判定出现环路问题,因此将端口设置为err-disabled状态.如:
%SPANTREE-2-CHNL_MISCFG:
Detectedloopduetoetherchannelmisconfiguration
?
?
ofGi0/1
如下,查看EC信息显示使用的信道组数量为0:
SWITCH#showetherchannelsummary
Flags:
D-down?
?
?
?
?
?
?
?
?
?
?
P-inport-channel
?
?
?
?
?
?
?
?
?
I-stand-alone?
?
s-suspended
?
?
?
?
?
?
?
?
?
H-Hot-standby(LACPonly)
?
?
?
?
?
?
?
?
?
R-Layer3?
?
?
?
?
?
?
?
?
S-Layer2
?
?
?
?
?
?
?
?
?
U-inuse?
?
?
?
?
?
?
?
?
?
f-failedtoallocateaggregator
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
u-unsuitableforbundling
Numberofchannel-groupsinuse:
0
Numberofaggregators:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0
EC没有正常工作是由于端口被设置为err-disabled状态:
SWITCH#showinterfacesgigabitethernet0/1status
Port?
?
?
?
Name?
?
?
?
?
?
?
?
?
?
?
Status?
?
?
?
?
?
?
?
?
Vlan?
?
?
?
?
Duplex?
?
?
?
Speed?
?
?
?
Type
Gi0/1?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
err-disabled?
?
?
?
100?
?
?
?
?
?
?
?
?
?
?
full?
?
?
?
?
1000?
?
?
?
?
?
1000BaseSX
为找出为何EC没有正常工作,根据错误信息暗示,STP检测到环路.之前提到过,这种情况的发生,是由于一方配置了EC,设置PAgP模式为on模式,这种模式和desirable模式正好相反,而另一方没有配置EC.因此,为了解决这种问题的发生,将EC的PAgP模式设置为可以主动协商的desirable模式.,然后再重新启用该端口.如下:
!
interfacegigabitethernet0/1
channel-group1modedesirablenon-silent
!
2).双工模式不匹配:
双工模式不匹配的问题比较常见,由于速率和双工模式自动协商的故障,常导致这种问题的发生.可以使用showinterfaces命令查看双方端口的速率和双工模式.后期版本的CDP也能够在将端口处于err-disabled状态之前发出警告日志信息.另外,网卡的不正常设置也将引起双工模式的不匹配.解决办法,如双方不能自动协商,使用duplex命令(CISCOIOS和CatOS有所不同)修改双方双工模式使之一致.
3).BPDUGuard:
通常启用了快速端口(PortFast)特性的端口用于直接连接端工作站这种不会产生BPDU的末端设备.由于PortFast特性假定交换机的端口不会产生物理环路,因此,当在启用了PortFast和BPDUGuard特性的端口上收到BPDU后,该端口将进入err-disabled状态,用于避免潜在环路.
假如我们将两台6509交换机相连,在其中一台上启用PortFast特性并打开BPDUGuard特性:
interfacegigabitethernet0/1
spanning-treebpduguardenable
spanning-treeportfastenable
此时将看到如下日志信息:
%PM-SP-4-ERR_DISABLE:
bpduguarderrordetectedonGi0/1,puttingGi0/1in
?
?
err-disablestate.
验证:
SWITCH#showinterfacesgigabitethernet0/1status
Port?
?
?
?
Name?
?
?
?
?
?
?
Status?
?
?
?
?
?
?
?
?
Vlan?
?
?
?
?
Duplex?
?
?
?
Speed?
?
?
?
Type
Gi0/1?
?
?
?
?
?
?
?
?
?
?
?
?
?
err-disabled?
?
?
?
100?
?
?
?
?
?
?
?
full?
?
?
?
?
1000?
?
?
?
1000BaseSX
像这种情况,不能启用PortFast特性,因此禁用该特性可以解决该问题.
4).UDLD:
UDLD协议允许通过光纤或铜线相连的设备监控线缆的物理配置,并且可以检测是否存在单向链路.如果检测到有单向链路,UDLD将关闭相关端口并发出警告日志信息.单向链路可以引起一系列的问题,最常见的就是STP拓扑环路.注意,为了启用UDLD,双方必须都支持该协议,并且要单独在每个端口启用UDLD.如果你只在一方启用了UDLD,同样的会引起端口进入err-disabled状态,如:
%PM-SP-4-ERR_DISABLE:
udlderrordetectedonGi0/1,puttingGi0/1in
?
?
err-disablestate.
5).链路振荡错误:
链路振荡(flap)是指短时间内端口不停的处于up/down状态,如果端口在10秒内连续振荡5次,端口将被设置为err-disabled状态,如:
%PM-4-ERR_DISABLE:
link-flaperrordetectedonGi0/1,puttingGi0/1in
?
?
err-disablestate
可以使用如下命令查看不同的振荡的值:
SWITCH#showerrdisableflap-values
ErrDisableReason?
?
?
?
?
?
?
?
?
?
?
?
?
Flaps?
?
?
?
?
?
Time(sec)
pagp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3?
?
?
?
?
?
?
?
?
30
dtp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
3?
?
?
?
?
?
?
?
?
30
link-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
5?
?
?
?
?
?
?
?
10
引起链路震荡的常见因素,可能是物理层的问题,比如GBIC的硬件故障等等.因此解决这种问题通常先从物理层入手.
6).回环(loopback)错误:
当keepalive信息从交换机的出站端口被发送出去后,又从该接口收到该信息,就会发生回环错误.交换机默认情况下会从所有端口向外发送keepalive信息.但由于STP没能阻塞某些端口,导致这些信息可能会被转发回去形成逻辑环路.因此出现这种情况后,端口将进入err-disabled状态,如:
%PM-4-ERR_DISABLE:
loopbackerrordetectedonGi0/1,puttingGi0/1in
?
?
err-disablestate
从CISCOIOS之后的版本,keepalive信息将不再从光纤和上行端口发送出去,因此解决这种问题的方案是升级CISCOIOS软件版本到或后续版本。
7).违反端口安全(PortSecurity)策略:
端口安全特性提供了根据MAC地址,动态的对交换机端口进行保护的特性.违反该策略将导致端口进入err-disabled状态.由于配置了port-securityviolationshutdown.
5、经验总结
找到引起err-disabled状态的根源后,如果没有配置errdisablerecovery,此时端口仍然处于禁用状态.这种情况下,就必须手动的重新启动这些端口(在接口下先shutdown再noshutdown).
errdisablerecovery允许你根据错误类型,在一定时间后(默认值是300秒)自动的重新启用该端口.使用showerrdisablerecovery命令查看该特性的默认设置:
SWITCH#showerrdisablerecovery
ErrDisableReason?
?
?
?
?
?
?
?
?
?
?
?
TimerStatus
udld?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
bpduguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
security-violation?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
channel-misconfig?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
pagp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
dtp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
link-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
l2ptguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
psecure-violation?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
gbic-invalid?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
dhcp-rate-limit?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
mac-limit?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
unicast-flood?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
arp-inspection?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
Timerinterval:
300seconds
Interfacesthatwillbeenabledatthenexttimeout:
Interface?
?
?
?
?
?
?
?
Errdisablereason?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Timeleft(sec)
Fa2/4?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
bpduguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
273
默认情况下超时特性是禁用的.如下是启用errdisablerecovery并选择相应的条件:
SWITCH#errdisablerecoverycause
其中对应showerrdisablerecovery的输出内容中"ErrDisableReason"一项.如下:
SWITCH#showerrdisablerecovery
ErrDisableReason?
?
?
?
?
?
?
?
?
?
?
?
TimerStatus
udld?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
bpduguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Enabled
security-violation?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
channel-misconfig?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
pagp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
dtp-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
link-flap?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
l2ptguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
psecure-violation?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
gbic-invalid?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
dhcp-rate-limit?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
mac-limit?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
unicast-flood?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
arp-inspection?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Disabled
Timerinterval:
300seconds
Interfacesthatwillbeenabledatthenexttimeout:
Interface?
?
?
?
?
?
?
?
Errdisablereason?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Timeleft(sec)
?
Fa2/4?
?
?
?
?
?
?
?
?
?
?
?
?
bpduguard?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
273
注意上面的输出内容,可以看出BPDUGuard是引起Fa2/4进入err-disabled状态的原因.当任意errdisable条件被启用,默认300秒后将重新启用该端口.该时间可以通过errdisablerecoveryinterval{sec}进行修改.