症狀:線路不通,指示燈滅或者顯示為橙色(不同平臺指示燈狀態不同)

 

show interface顯示interface狀態:

FastEthernet0/47 is down, line protocol is down (err-disabled)

interface狀態是err-disable

 

sw1#show interfaces status

 

Port Name Status Vlan Duplex Speed Type

Fa0/47 err-disabled 1 auto auto 10/100BaseTX

 

如果出現了interface狀態為err-disableshow interfaces status err-disabled命令能查看觸發err-disable的原因。

下面範例原因為bpduguard,在連接了Switchport配置了spanning-tree bpduguard enable

 

sw1#show interfaces status err-disabled[b]

 

Port Name [b]Status Reason

Fa0/47 err-disabled [b]bpduguard[b]

 

interface產生err-disable的原因可以由以下的命令來查看,系統預設的設定是所有列出的原因都能導致interface被置為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

 

以看出常見的原因有udldbpduguardlink-flap以及loopback等。

具體由什麼原因導致interface err-disable可以由show interface status err-disable來查看。

 

interface模式下採用shutdown,no shutdown進行手動的啟動。

 

在預設設定下,一旦interface被判斷為err-disableIOS將不會試圖恢復interface

這個可以由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重新啟動errdisableinterface,使用以下命令:

 

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-disableinterface,這段時間預設為300秒。

但是,如果引起err-disable的原因沒有排除,在恢復工作後,interface會再次被判斷為err-disable

 

調整err-disable的超時時間,可以使用以下命令:

sw1(config)#errdisable recovery interval ?

<30-86400> timer-interval(sec)

可以調整在3086400秒,預設是300秒。

 

如果產生err-disable的原因是udld,下面有一條命令非常管用:

sw1#udld reset

No ports are disabled by UDLD.

 

同時,interface在被判斷為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資訊

arrow
arrow
    全站熱搜

    ITMan 發表在 痞客邦 留言(1) 人氣()