Cisco 交換機端口err-disable 解決方法

個人一臺2960GG透過多模 10G SFP-10GBase-LRM光纖接核心3850交換機,今天早上之間網絡不通,3850G和2960上的SFP模塊指示燈都不亮,查看CISCO 2960G端口有以下提示:
ios

#show int status err-disabled安全

Port      Name                               Status            Reason               Err-disabled Vlans
Te6/0/1   [TRUNK] swi-core01    err-disabled    link-flap服務器


解決以下:
conf t
int Te6/0/1
shut
no shut
end
OK!!!
查閱關於link-flap及err-disable的資料以下:http://www.net130.com/cms/Pub/Tech/tech_zh/2010_11_07_20606.htmhttp://shanliren.blog.51cto.com/159454/165595
Cisco網站上關於link-flap的說明:
Link-flap error
Link flap means that the interface continually goes up and down. The interface is put into the errdisabled state if it flaps more than five times in 10 seconds. The common cause of link flap is a Layer 1 issue such as a bad cable, duplex mismatch, or bad Gigabit Interface Converter (GBIC) card. Look at the console messages or the messages that were sent to the syslog server that state the reason for the port shutdown.
個人翻譯:
Link flap的意思是接口持續性的up和down。若是一個接口在10秒內發生超過5次up/down,將被置爲errdisable狀態。link-flap的緣由爲layer-1層的諸如網線問題、雙工不匹配或者故障的千兆GBIC卡。能夠查看console或者syslog服務器下的log日誌,獲取端口shutdwn的緣由。出現了這個問題,咱們不得不重視起交換機端口「假死」的現象,尋求在交換機不重啓的狀態下將該端口「拯救」回來的方法。
拯救步驟1:查看日誌/端口的狀態
網絡


 登陸進入交換機後,執行show log,會看到以下的提示:
21w6d: %ETHCNTR-3-LOOP_BACK_DETECTED: Keepalive packet loop-back detected on FastEthernet0/20.
21w6d: %PM-4-ERR_DISABLE: loopback error detected on Fa0/20, putting Fa0/20 in err-disable state
以上信息就明確表示因爲檢測到第20端口出現了環路,因此將該端口置於了err-disable狀態。併發


 查看端口的狀態app


 Switchide

#show int te6/0/1 statusoop

Port      Name               Status       Vlan       Duplex  Speed Type
Te6/0/1   [TRUNK] swi-core01 err-disabled 1            full    10G SFP-10GBase-LRM網站

這條信息更加明確的表示了該端口處於err-disabled狀態。
既然看到了該端口是被置於了錯誤的狀態了,咱們就應該有辦法將其再恢復成正常的狀態。
拯救步驟2:將端口從錯誤狀態中恢復回來
this


 進入交換機全局配置模式,執行errdisable recovery cause ?,會看到以下信息:
Switch(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 state


 從列出的選項中,咱們能夠看出,有很是多的緣由會引發端口被置於錯誤狀態,因爲咱們明確的知道這臺交換機上的端口是因爲環路問題而被置於錯誤狀態的,因此就能夠直接鍵入命令:


 Switch(config)#errdisable recovery cause link-flap
是啊,就這麼簡單的一條命令,就把困撓咱們很長時間的問題解決了,真的就這麼神奇。那麼如何驗證這條命令是生效了呢?
拯救步驟3:顯示被置於錯誤狀態端口的恢復狀況

switch#show errdisable recovery
ErrDisable Reason            Timer Status
-----------------            --------------
arp-inspection               Disabled
bpduguard                    Disabled
channel-misconfig (STP)      Disabled
dhcp-rate-limit              Disabled
dtp-flap                     Disabled
gbic-invalid                 Disabled
inline-power                 Disabled
link-flap                    Enabled
mac-limit                    Disabled
loopback                     Disabled
pagp-flap                    Disabled
port-mode-failure            Disabled
pppoe-ia-rate-limit          Disabled
psecure-violation            Disabled
security-violation           Disabled
sfp-config-mismatch          Disabled
small-frame                  Disabled
storm-control                Disabled
udld                         Disabled
vmps                         Disabled
psp                          Disabled
dual-active-recovery         Disabled
evc-lite input mapping fa    Disabled
Recovery command: "clear     Disabled

Timer interval: 300 seconds


Interface       Errdisable reason       Time left(sec)
---------       -----------------       --------------
Interfaces that will be enabled at the next timeout:

Interface       Errdisable reason       Time left(sec)
---------       -----------------       --------------
Te6/0/1                link-flap          222


 從以上顯示的信息能夠看出,這臺交換機有一個端口(Te6/0/1)會222秒以後恢復爲正常的狀態,實際狀況也是這樣,等了幾分鐘之後。這下總算在不重交換機的狀況下,將幾個處於「假死」狀態的端口「拯救」了回來。


 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·


 以上是一網友提供的解決cisco交換機端口假死的辦法,雖然辦法可行,可是每次假死後都要手動去恢復有些麻煩


 爲了讓交換機出現此假死故障後能自動恢復,咱們也有相應幫忙來解決


 在這裏我就上面網友的內容進行補充,用於cisco交換機自動恢復端口假死的故障


 在特權模式下配置以下:


 errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause sfp-config-mismatch
errdisable recovery cause gbic-invalid
errdisable recovery cause l2ptguard
errdisable recovery cause psecure-violation
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause storm-control
errdisable recovery cause inline-power
errdisable recovery cause arp-inspection
errdisable recovery cause loopback


 以上這些都是致使端口假死的條件,配置上述能夠


 
%PM-4-ERR_DISABLE: link-flap error detected on Gi4/1, putting Gi4/


 1 in err-disable state
Issue this command in order to view the flap values:


 cat6knative#show errdisable flap-values


 !--- Refer to show errdisable flap-values for more information on the command.

 ErrDisable Reason    Flaps    Time (sec)-----------------    ------   ----------pagp-flap              3       30dtp-flap               3       30link-flap              5       10讓端口在出現假死後自動恢復;關於接口處於err-disable的故障排查 故障症狀: 線路不通,物理指示燈滅或者顯示爲橙色(不一樣平臺指示燈狀態不一樣) show interface 輸出顯示接口狀態: FastEthernet0/47 is down, line protocol is down (err-disabled) 接口狀態是err-disable。sw1#show interfaces statusPort 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 resetNo 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-flapFa0/45 Production line VM err-disabled link-flap switch#show errdisable detect ErrDisable Reason Detection status ----------------- ---------------- pagp-flap 3 30 dtp-flap 3 30 link-flap 5 10 ( link-flap 這就是由於鏈路質量很差致使的)關閉errdisable detectswitch#no errdisable detect cause all致使交換機接口出現err-disable的幾個常見緣由:      1. EtherChannel misconfiguration    2. Duplex mismatch    style="TEXT-INDENT: 2em">3. BPDU port guard    4. UDLD    5. Link-flap error    6. Loopback error    7. Port security violation    第一個當F EC兩端配置不匹配的時候就會出現err-disable.假設Switch A把FEC模式配置爲on,這時Switch A是不會發送PAgP包和相連的Switch B去協商FEC的,它假設Switch B已經配置好FEC了。但實事上Swtich B並無配置FEC,當Switch B的這個狀態超過1分鐘後,Switch A的STP就認爲有環路出現,所以也就出現了err-disable.解決辦法就是把FEC的模式配置爲channel-group 1 mode desirable non-silent這個意思是隻有當雙方的FEC協商成功後才創建channel,不然接口還處於正常狀態。    第二個緣由就是雙工不匹配。一端配置爲half-duplex後,他會檢測對端是否在傳輸數據,只有對端中止傳輸數據,他纔會發送相似於ack的包來讓鏈路up,但對端卻配置成了full-duplex,他才無論鏈路是不是空閒的,他只會不停的發送讓鏈路up的請求,這樣下去,鏈路狀態就變成err-disable了。    3、第三個緣由BPDU,也就是和portfast和BPDU guard有關。若是一個接口配置了portfast,那也就是說這個接口應該和一個pc鏈接,pc是不會發送spanning-tree的BPDU幀的,所以這個口也接收BPDU來生成spanning-tree,管理員也是出於好心在同一接口上配置了BPDU guard來防止未知的BPDU幀以加強安全性,但他偏偏不當心把一個交換機接到這個同時配置了portfast和BPDU guard接口上,因而這個接口接到了BPDU幀,由於配置了BPDU guard,這個接口天然要進入到err-disable狀態。解決辦法:no spanning-tree portfast bpduguard default,或者直接把portfast關了。    第四個緣由是UDLD.UDLD是cisco的私有2層協議,用於檢測鏈路的單向問題。有的時候物理層是up的,但鏈路層就是down,這時候就須要UDLD去檢測鏈路是不是真的up的。當AB兩端都配置好UDLD後,A給B發送一個包含本身port id的UDLD幀,B收到後會返回一個UDLD幀,並在其中包含了收到的A的port id,當A接收到這個幀並發現本身的port id也在其中後,認爲這鏈路是好的。反之就變成err-disable狀態了。假設A配置了UDLD,而B沒有配置UDLD:A給B發送一個包含本身port id的幀,B收到後並不知道這個幀是什麼,也就不會返回一個包含A的port id的UDLD幀,那麼這時候A就認爲這條鏈路是一個單向鏈路,天然也就變成err-disable狀態了。    第五個緣由就是鏈路的抖動,當鏈路在10秒內反覆up、down五次,那麼就進入err-disable狀態。    第六個緣由就是keepalive loopback.在12.1EA以前,默認狀況下交換機會在全部接口都發送keepalive信息,因爲一些不通交換機協商spanning-tree可能會有問題,一個接口又收到了本身發出的keepalive,那麼這個接口就會變成err-disable了。解決辦法就是把keepalive關了。或者把ios升到12.2SE.    最後一個緣由,相對簡單,就是因爲配置了port-security violation shutdown

相關文章
相關標籤/搜索