可以使用show interfaces命令查看端口状态,如:
switch#show interfaces gigabitethernet 0/1 status
Port Name Status Vlan Duplex Speed Type
Gi0/1 err-disabled 100 full 1000 1000BaseSX
当交换机的某个端口处于err-disabled状态后,交换机将发送为什么这么做的日志信息到控制台端口.也可以使用show log查看系统日志,如:
%SPANTREE-SP-2-BLOCK_BPDUGUARD:
Received BPDU on port gigabitethernet 0/1 with BPDU Guard enabled. Disabling port.
%PM-SP-4-ERR_DISABLE:
bpduguard error detected on Gi 0/1, putting Gi0/1 in err-disable state
%SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1
可以使用show interfaces status err-disabled命令查看处于err-disabled状态的原因,如:
switch #show interfaces status err-disabled
Port Name Status Reason Err-disabled Vlans
Fa0/1 err-disabled loopback
当出现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: Detected loop due to etherchannel misconfiguration
of Gi0/1
如下,查看EC信息显示使用的信道组数量为0:
SWITCH#show etherchannel summary
Flags: D - down P - in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
u - unsuitable for bundling
Number of channel-groups in use: 0
Number of aggregators: 0
EC没有正常工作是由于端口被设置为err-disabled状态:
SWITCH#show interfaces gigabitethernet 0/1 status
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模式.,然后再重新启用该端口.如下:
!
interface gigabitethernet 0/1
channel-group 1 mode desirable non-silent
!
2).双工模式不匹配:
双工模式不匹配的问题比较常见,由于速率和双工模式自动协商的故障,常导致这种问题的发生.可以使用show interfaces命令查看双方端口的速率和双工模式.后期版本的CDP也能够在将端口处于err-disabled状态之前发出警告日志信息.另外, 网卡的不正常设置也将引起双工模式的不匹配.解决办法,如双方不能自动协商,使用duplex命令(CISCO IOS和CatOS有所不同)修改双方双工模式使之一致.
3).BPDU Guard:
通常启用了快速端口(PortFast)特性的端口用于直接连接端工作站这种不会产生BPDU的末端设备.由于PortFast特性假定交换机的端口不会产生物理环路,因此,当在启用了PortFast和BPDU Guard特性的端口上收到BPDU后,该端口将进入err-disabled状态,用于避免潜在环路.
假如我们将两台6509交换机相连,在其中一台上启用PortFast特性并打开BPDU Guard特性:
interface gigabitethernet 0/1
spanning-tree bpduguard enable
spanning-tree portfast enable
此时将看到如下日志信息:
%PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi0/1, putting Gi0/1 in
err-disable state.
验证:
SWITCH#show interfaces gigabitethernet 0/1 status
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: udld error detected on Gi0/1, putting Gi0/1 in
err-disable state.
5).链路振荡错误:
链路振荡(flap)是指短时间内端口不停的处于up/down状态,如果端口在10秒内连续振荡5次,端口将被设置为err-disabled状态,如:
%PM-4-ERR_DISABLE: link-flap error detected on Gi0/1, putting Gi0/1 in
err-disable state
可以使用如下命令查看不同的振荡的值:
SWITCH#show errdisable flap-values
ErrDisable Reason 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: loopback error detected on Gi0/1, putting Gi0/1 in
err-disable state
从CISCO IOS 12.2SE之后的版本,keepalive信息将不再从光纤和上行端口发送出去,因此解决这种问题的方案是升级CISCO IOS软件版本到12.2SE或后续版本
。
7).违反端口安全(Port Security)策略:
端口安全特性提供了根据MAC地址,动态的对交换机端口进行保护的特性.违反该策略将导致端口进入err-disabled状态. 由于配置了port-security violation shutdown.
暂无评论