天天看點

802.1d,802.1w,802.1s與802.1q

一.err-disabled狀态的作用:

通常情況下,如果交換機運轉正常,其中端口一項顯示為啟用(enable)狀态.但是如果交換機的軟體(CISCO IOS/CatOS)檢測到端口的一些錯誤,端口将随即被關閉.也就是說,當交換機的作業系統檢測到交換機端口發生些錯誤事件的時候,交換機将自動關閉該端口.

當端口處于err-disabled狀态,将沒有任何流量從該端口被轉發出去,也将不接收任何進站流量.從交換機外觀上看去,端口相對應的LED狀态燈也将由正常的綠色變為暗×××(或者叫做橘×××,本人色盲,官方給的說法是amber,琥珀色).同時使用檢視端口狀态的一些指令,比如show interfaces,也會看到端口是處于err-disabled狀态的.還有種情況是,當交換機因一種錯誤因素導緻端口被禁用(err- disabled),這種情況通常會看到類似如下日志資訊:

%SPANTREE-SP-2-BLOCK_BPDUGUARD:

   Received BPDU on port GigabitEthernet2/1 with BPDU Guard enabled. Disabling port.

%PM-SP-4-ERR_DISABLE:

   bpduguard error detected on Gi2/1, putting Gi2/1 in err-disable state

err-disabled的兩個作用的:

1.告訴管理者端口狀态出錯.

2.消除因某個端口的錯誤導緻所有端口,或者整個子產品功能的出錯.

二.err-disabled狀态的起因:

該特性最初是用于處理特定的沖突形勢,比如過分沖突(excessive collisison)和後期沖突(late collision).由于CSMA/CD機制的制定,當發生16次沖突後幀将被丢棄,此時發生excessive collision;而late collision是指在發送方發送了64個位元組之後,正常的和合法的沖突就不可能發生了.理論上正常的網絡傳播一定會在此之前就完成了,但是如果線路過長的話會在前64個位元組完成後發生沖突,後期沖突和發生在前64個位元組的沖突最明顯的差別是後者網卡會自動重新傳輸正常的沖突幀,但不會重傳後期沖突的幀.後期沖突發生在時間逾時和中繼器的遠端.一般而言,這樣的沖突在本地網段會簡單地判斷為一個幀校驗序列(FCS)錯誤.引起這種錯誤的可能原因有:

1.線纜的不規範使用,比如超出了最大傳輸距離或者使用了錯誤的線纜類型.

2.網卡的不正常工作(實體損壞或者驅動程式的錯誤).

3.端口雙工模式的錯誤配置,如雙工不比對.

如下是端口處于err-disabled狀态的幾種原因:

1.雙工不比對.

2.端口信道的錯誤配置.

3.違反BPDU守護(BPDU Guard)特性.

4.單向鍊路檢測(UDLD).

5.檢測到後期沖突.

6.鍊路振蕩.

7.違反某些安全政策.

8.端口聚合協定(PAgP)的振蕩.

9.層2隧道協定(L2TP)守護(L2TP Guard).

10.DHCP偵聽限速.

三.檢驗端口是否處于err-disabled狀态:

可以使用show interfaces指令檢視端口狀态,如:

NUAIKO#show interfaces gigabitethernet 2/1 status

Port     Name            Status          Vlan      Duplex     Speed     Type

Gi2/1                   err-disabled     100            full      1000       1000BaseSX

當交換機的某個端口處于err-disabled狀态後,交換機将發送為什麼這麼做的日志資訊到控制台端口.也可以使用show log檢視系統日志,如:

%SPANTREE-2-CHNMISCFG: STP loop - channel 11/1-2 is disabled in vlan 1

如果啟用了errdisable recovery功能,可以使用show errdisable recovery指令檢視處于err-disabled狀态的原因,如:

NUAIKO#show errdisable recovery

ErrDisable Reason             Timer Status

−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−

udld                                  Enabled

bpduguard                         Enabled

security-violation                Enabled

channel-misconfig               Enabled

pagp-flap                           Enabled

dtp-flap                             Enabled

link-flap                             Enabled

l2ptguard                           Enabled

psecure-violation                Enabled

gbic-invalid                        Enabled

dhcp-rate-limit                   Enabled

mac-limit                           Enabled

unicast-flood                      Enabled

arp-inspection                    Enabled

Timer interval: 300 seconds

Interfaces that will be enabled at the next timeout:

Interface         Errdisable reason                      Time left(sec)

−−−−−−−−− −−−−−−−−−−−−−−−−−−−−− −−−−−−−−−−−−−−

   Fa2/4                   bpduguard                                 273

四.恢複err-disabled狀态:

當出現err-disabled狀态後,首先要做的,是找出引起該狀态的根源,然後重新啟用該端口;如果順序不一緻,将導緻該端口再次進入err-disabled狀态.

找出問題的根源,以比較常見的做為例子:

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 Gi2/1

如下,檢視EC資訊顯示使用的信道組數量為0:

NUAIKO#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狀态:

為找出為何EC沒有正常工作,根據錯誤資訊暗示,STP檢測到環路.之前提到過,這種情況的發生,是由于一方配置了EC,設定PAgP模式為on模式,這種模式和desirable模式正好相反,而另一方沒有配置EC.是以,為了解決這種問題的發生,将EC的PAgP模式設定為可以主動協商的 desirable模式.,然後再重新啟用該端口.如下:

!

interface gigabitethernet 2/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特性:

spanning-tree bpduguard enable

spanning-tree portfast enable

此時将看到如下日志資訊:

%PM-SP-4-ERR_DISABLE: bpduguard error detected on Gi2/1, putting Gi2/1 in

   err-disable state.

驗證:

像這種情況,不能啟用PortFast特性,是以禁用該特性可以解決該問題.

4.UDLD:

UDLD協定允許通過光纖或銅線相連的裝置監控線纜的實體配置,并且可以檢測是否存在單向鍊路.如果檢測到有單向鍊路,UDLD将關閉相關端口并發出警告日志資訊.單向鍊路可以引起一系列的問題,最常見的就是STP拓撲環路.注意,為了啟用UDLD,雙方必須都支援該協定,并且要單獨在每個端口啟用 UDLD.如果你隻在一方啟用了UDLD,同樣的會引起端口進入err-disabled狀态,如:

%PM-SP-4-ERR_DISABLE: udld error detected on Gi2/1, putting Gi2/1 in

5.鍊路振蕩錯誤:

鍊路振蕩(flap)是指短時間内端口不停的處于up/down狀态,如果端口在10秒内連續振蕩5次,端口将被設定為err-disabled狀态,如:

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

   err-disable state

可以使用如下指令檢視不同的振蕩的值:

NUAIKO#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 Gi2/1, putting Gi2/1 in

從CISCO IOS 12.2SE之後的版本,keepalive資訊将不再從光纖和上行端口發送出去,是以解決這種問題的方案是更新CISCO IOS軟體版本到12.2SE或後續版本.更多資訊可以參見CISCO BUG ID CSCea46385(需要一定權限的CCO).

7.違反端口安全(Port Security)政策:

端口安全特性提供了根據MAC位址,動态的對交換機端口進行保護的特性.違反該政策将導緻端口進入err-disabled狀态.端口安全的原理和配置這裡就不再贅述,有興趣的可以去CISCO的Documentation CD裡查閱(當然如果你比我還懶的話,可以加我Q:13030130,我講給你聽).

五.重新啟用進入err-disabled狀态的端口:

再找到引起err-disabled狀态的根源後,如果沒有配置errdisable recovery,此時端口仍然處于禁用狀态.這種情況下,就必須手動的重新啟動這些端口(在接口下先shutdown再no shutdown).

errdisable recovery允許你根據錯誤類型,在一定時間後(預設值是300秒)自動的重新啟用該端口.使用show errdisable recovery指令檢視該特性的預設設定:

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

預設情況下逾時特性是禁用的.如下是啟用errdisable recovery并選擇相應的條件:

NUAIKO#errdisable recovery cause ?

其中?對應show errdisable recovery的輸出内容中"ErrDisable Reason"一項.如下:

注意上面的輸出内容,可以看出BPDU Guard是引起Fa2/4進入err-disabled狀态的原因.當任意errdisable條件被啟用,預設300秒後将重新啟用該端口.該時間可以通過errdisable recovery interval {sec}進行修改.

最後,還請轉載者保留作者資訊:

作者:紅頭發(aka CCIE#15101/JNCIP Candidate)

出處:[url]http://www.91lab.com[/url]

原文位址 [url]http://www.91lab.com:81/bbs/viewthread.php?tid=14301&extra=page%3D1[/url]

繼續閱讀