解決交換機埠出現err-disabled現象

fanhongjie發表於2007-08-15

轉自:http://blog.chinaunix.net/u/9951/showart_155834.html

關閉errdisable detect
switch
#no errdisable detect cause all

[@more@]

關閉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。

sw1#show errdisable recovery
ErrDisable Reason Timer Status
----------------- --------------
udld Disabled
bpduguard Enabled
security-violatio Disabled
channel-misconfig Disabled
vmps Disabled
pagp-flap Disabled
dtp-flap Disabled
link-flap Disabled
l2ptguard Disabled
psecure-violation Disabled
gbic-invalid Disabled
dhcp-rate-limit Disabled
unicast-flood Disabled
loopback Disabled

Timer interval: 300 seconds

Interfaces that will be enabled at the next timeout:

Interface Errdisable reason Time left(sec)
--------- ----------------- --------------
Fa0/47 bpduguard 217

配置IOS重新啟用errdisable的介面,使用以下命令:

sw1(config)#errdisable recovery cause bpduguard

sw1(config)#errdisable recovery cause ?
all Enable timer to recover from all causes
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 detected 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
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的時候,通常有一系列的日誌產生,如下:

*Mar 15 15:47:19.984: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port FastEthernet0/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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/73920/viewspace-958434/,如需轉載,請註明出處,否則將追究法律責任。

相關文章