本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文說明如何辨識網路(包括Catalyst 9000系列交換器)中的第2層回圈並疑難排解。
建議您瞭解生成樹通訊協定概念。
本檔案所述內容不限於特定軟體或硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
第2層環路在區域網中導致havok。由此產生的「廣播風暴」干擾了受影響的虛擬lan (VLAN)內的通訊,並同時使終端和網路裝置陷入癱瘓。此問題會隨著時間的推移而增加,因為第2層流量沒有導致資料包最終在網路上被消耗的生存時間(TTL)等機制。而環路的流量(例如位址解析通訊協定(ARP)或動態主機設定通訊協定(DHCP)流量)會無限回圈,直到回圈中斷為止。負責研究活動循環的個人發現自己處於壓力狀態。
幸運的是,我們嘗試了一些真實的方法來調查和排查第2層環路。本文檔概述了世代TAC工程師使用的方法。
生成樹:如何防止環路?
此簡單拓撲顯示了正在運行的生成樹協定。以下幾點適用於此拓撲:
此拓撲中的生成樹已收斂,因此可以防止環路。 綠色箭頭表示客戶端PC傳送的廣播資料包在互連交換機上的轉發方式。BBBB上的阻塞埠可防止客戶端傳送的廣播在裝置之間無限循環。
第2層廣播風暴如何形成?
在許多情況下,生成樹提供的環路預防並不能阻止廣播風暴。
網路中的物理(第1層)問題可能會導致單向鏈路,從而阻止生成樹揚聲器可靠交換BPDU。不可靠的BPDU接收或傳送會導致不必要和意外的生成樹收斂。
範例 1:
在此場景中,BBBB停止在其根埠上接收來自根網橋的BPDU。BBBB會收斂以響應BPDU的丟失。其根埠不再是根的可行路徑,因為它不再接收BPDU並成為指定埠。其阻塞埠繼續接收來自AAAA的BPDU,並成為根埠。兩個介面均未阻塞,因此會形成環路。
範例 2:
當生成樹按預期收斂時,也會出現網路中斷。 連線到網路的某些裝置可以是環路的向量。意外連線到網路的集線器或類似裝置可能導致廣播風暴。
網路工程師採用許多方法處理第2層環路和廣播風暴。本節介紹一種經過實踐檢驗的真實方法,該方法已經過無數的TAC案例和災難性中斷測試。
此方法利用非常基本的命令並避開資料點,例如生成樹協定(STP)拓撲更改通知(TCNs),這些通知可能會很混亂,難以追趕。當非邊緣埠從BLOCKING轉為FORWARDING時,快速STP (RSTP)拓撲中的TCN會出現。環路本身可能會給STP揚聲器帶來負擔,使其無法預測地參與收斂。如果受害交換機上的介面由於控制平面擁塞而無法正確處理入站BPDU,則這些介面將轉入FORWARDING。TCN通常是表明受害裝置的症狀,但不一定表明環路來源。
需要考慮的更有效和線性資料點不是STP TCN,而是介面輸入速率。 參與循環的介面顯示比預期輸入速率高得多。產出率並不是那麼令人擔憂,因為這些下游裝置本身也可能是受害者。您還可以觀察到受影響介面上的廣播和組播速率很高,並注意到平均資料包大小偏向於小於預期值。
僅使用這些命令,網路工程師就可以直接隔離大多數(如果不是全部)第2層環路:
show interfaces | include is up|input rate
命令「show interfaces | include is up|input rate」與管道和引數一起為我們提供了可快速消化的輸出片段。它向我們顯示了我們當前處於「up」狀態的所有介面及其輸入速率。出於我們的目的,我們只關心輸入速率。輸入速率過高的介面很可能是環路的受害者。連線到具有意外的高輸入速率的介面的裝置可能更接近環路源。 輸出率意外高的介面可能使我們遠離環路源。
ACCESS-SWITCH1#show interfaces | in is up|input rate <snip>
GigabitEthernet1/0/1 is up, line protocol is up (connected) <----- Typical endpoint with a low input rate. This would not raise suspiscion. 5 minute input rate 33000 bits/sec, 21 packets/sec GigabitEthernet1/0/2 is up, line protocol is up (connected) 5 minute input rate 24000 bits/sec, 11 packets/sec <snip> 5 minute input rate 0 bits/sec, 0 packets/sec <----- This output represents interfaces that are down. 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) <----- Twe1/1/1 in this scenario is high-bandwith uplink interface. We would expect uplinks to have a fair amount of traffic on input. 5 minute input rate 2816922000 bits/sec, 2072252 packets/sec. If we were troubleshooting a loop, pay special attention to this interface given the input rate. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 2926942401 bits/sec, 3043467 packets/sec <-- The same logic goes for this port. The input rate is relatively high but that is possibly function of its position in the network. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <snip>
ACCESS-SWITCH1#show cdp neighbor twe1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-SWITCH2 Twe 1/1/1 142 S I C9300-48P Twe 1/1/4 <--- We confirm that the expected neighbor is attached to this interface. Total cdp entries displayed : 1
show spanning-tree
使用此命令瞭解本地交換機如何認為生成樹已收斂。 請記住,生成樹的各種形式各有不同。預設情況下,Catalyst交換機運行快速PVST,但支援PVST和MST。
ACCESS-SWITCH1#show spanning-tree VLAN0001 <----- Keep in mind that in per-vlan spanning-tree, each VLAN represents a unique instance of spanning-tree Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/0/3) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.35 P2p <---- This output corresponds with expectation. This step helps to populate STP information in your topology as you move from device to device
這種簡單的簡單方法可避免耗時的封包擷取,避免將焦點放在跨距樹狀目錄TCN上,並將實際問題放在調查的首要位置。它還可以消除「猜測和檢查」的故障排除。
請看此拓撲圖:
由於交換機之間的冗餘互連,生成樹會阻塞此拓撲中的多個埠。在本示例中,黃色X圖形表示阻塞埠。轉發埠全部為指定埠或根埠,具體取決於本地交換機與根網橋相比所處的位置。 綠色箭頭表示示例客戶端將在此網路中傳送的正常預期廣播流量。
儘管網路並不十分複雜,但由於存在許多冗餘鏈路,該網路提供了形成環路的許多機會。
此來自更廣泛拓撲的代碼段將重點介紹伺服器所連線的接入交換機的生成樹角色/狀態。
考慮是否有一條單向鏈路,防止下游接入交換機在其根埠上收到BPDU。生成樹會響應而重新收斂,隨後出現第2層環路。
ACCESS-C上的前根埠停止接收來自DISTRO-B的BPDU。交換機不再將其視為通向根網橋的可行路徑,因此優先順序最高的阻塞埠將成為ROOT/FORWARDING。之前的根埠會轉換為DESIGNTED/FORWARDING。這種重新收斂會導致轉發環路。
此圖顯示環路如何影響從我們的客戶端傳送的廣播流量。 除非環路中斷,否則環路流量將繼續無限循環,並可能從多個介面上的受影響交換機進入/出口。您可以看到多個紅色箭頭,代表環路流量的方向。
隨著越來越多的流量無限循環,此問題繼續發展壯大。預設情況下,Catalyst 9000系列交換機採用強大的控制平面策略(CoPP)機制,但某些產品不採用這種機制。在回圈VLAN中擁有本機交換器虛擬介面(SVI)的交換器,會將該VLAN內的廣播流量副本傳送到CPU。若沒有CoPP,所有這種傳送的流量都會中斷交換器CPU。由於受害交換機無法按預期參與生成樹,因此這往往會使情況變得更糟。
解決此類問題時,我們面臨的首要挑戰之一是確定從何處著手。 歸根結底,我們開始所處的位置並不是非常重要。 受環路影響的所有裝置最終會跟蹤到環路源。
在本例中,我們從受影響客戶端連線的交換機開始。
起點- ACCESS-A -直接連線到客戶端
這個方法會讓初始起始點不相關。 所有受影響的介面都指向問題的來源。無論您從何處開始,如果遵循此過程,您都會到達回圈/反射的源頭。在這種情況下,受影響的客戶端連線到交換機ACCESS-A。這是我們開始的地方。此過程的第一步是考慮所有活動介面上的輸入速率。
ACCESS-A#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 33000 bits/sec, 21 packets/sec <--- This access port (downlink) has a small volume of traffic inbound. This does not raise suspiscion. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 2816922000 bits/sec, 2672252 packets/sec <--- This port is an uplink. There is a fair amount of traffic inbound on this port, but also keep in mind that the uplink is expected to be busier. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) <--- This is our other uplink on this switch. The input rate is zero, suggesting the other end of this link is not transmitting. This implies that the other end of the link successfully blocks. 5 minute input rate 0 bits/sec, 0 packets/sec
平均資料包大小的計算方法是將每秒位元組數除以每秒資料包。在本示例中,資料包的平均大小約為132位元組。這表示大量小資料包歪曲了平均值。例如,大量ARP在生產網路中可能導致與預期的平均資料包大小相同的偏差,並且表明埠受到廣播風暴的侵害。
沒有下行鏈路顯示異常輸入速率。唯一可能受到影響的埠是根埠-通往分佈層的上行鏈路。在移至下一個裝置之前,首先考慮交換機的生成樹。
ACCESS-A#show spanning-tree <--- Without an argument, this command gives spanning-tree information for all VLANs with an active STP instance running. For this example, we assume VLAN 1 is consistent with all VLANs on the trunk. VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.1 P2p Gig1/0/2 Desg FWD 20000 128.2 P2p <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p
<snip>
以下是瞭解您的網路以及生成樹如何收斂的代價。Te1/1/1是預期的根埠。Twe1/1/2也連線到交換機並轉發,但其輸入速率是0 packets/sec,因此我們知道鏈路的另一端成功阻塞。生成樹方面一切正常。現在,我們確認受影響埠上的鏈路對等體。
ACCESS-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/1 137 S I C9300-48P Twe 1/0/3
下一跳交換機- DISTRO-A
下一步是重複之前在連線到可疑介面的交換機上進行的活動。 運行「show interfaces | include is up|input rate」以標識輸入速率過高的介面。
DISTRO-A#show interfaces | in is up|input rate 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4846092202 bits/sec, 4572251 packets/sec <-- In this scenario, this input rate raises red flags. This is another situation where understanding normal baselines is helpful. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- The other end of this link is likely blocking. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 146192134 bits/sec, 171252 packets/sec <-- Fair amount of usage, though exponentially smaller that our 'suspect' link. Again, knowing expected baselines is helpful to identify when deviations occur. This is a downlink towards an access switch in this scenario, and does not raise red flags. TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4938392202 bits/sec, 4723294 packets/sec <-- This is along the same magnitude of input as Twe1/1/1. Often, interfaces impacted by the same broadcast storm shows similar activity. In our scenario, this interface raises red flags. TwentyFiveGigE1/1/5 is up, line protocol is up (connected) 5 minute input rate 032182156 bits/sec, 104263 packets/sec <-- Similar to Twe1/1/3, this interface is active but not at a suspicious level.
在DISTRO-A上,我們發現兩個介面的輸入速率高於預期。回圈的性質表示通常有多條路徑通往來源。 我們注意兩個介面,但首先我們檢查生成樹是否有任何異常情況。
DISTRO-A#show spanning-tree
VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 2000 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address c18b.a18d.5b76 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.35 P2p Twe1/1/4 Desg FWD 800 128.36 P2p Twe1/1/5 Desg FWD 800 128.37 P2p
<snip>
如果您檢視DISTRO-A在網路中的位置,您會看到該交換機上的所有埠都應轉發。它具有直接連線到根橋的根埠(Twe1/1/1)。它的所有下行鏈路和到其它交換機的互連都被指定並轉發。這透過我們的生成樹輸出進行跟蹤。
現在,我們檢查可疑介面上的對等體並決定下一步去哪裡。 任何方向都會導致我們到達環路的源頭。
DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 137 S I C9500-48Y4C Twe 1/0/1 DISTRO-A#show cdp neighbors twentyFiveGigE 1/1/4 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/4 137 S I C9300-48P Twe 1/1/1
我們首先檢查一下CORE,但是在這種情況下改用ACCESS-B同樣有效。
下一跳交換機-核心
CORE#show interfaces | in is up|input rate TwentyFiveGigE1/0/1 is up, line protocol is up (connected) <--- Both active downlinks have comparably high input rates. It is not unexpected for core devices to have high interface activity. 5 minute input rate 4946092202 bits/sec, 4671352 packets/sec TwentyFiveGigE1/0/2 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- It appears that both Twe1/0/1 and Twe1/0/2 are victimized. These are the only active downlinks, so this makes sense. <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
由於此交換機是根網橋,因此我們期望它的所有介面都能轉發。使用show spanning-tree快速進行確認。
CORE#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 1 (priority 0 sys-id-ext 1) Address 380e.4d77.4800 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Twe1/0/1 Desg FWD 800 128.25 P2p Twe1/0/2 Desg FWD 800 128.26 P2p
廣播風暴沒有意外的入口路徑。根據我們掌握的資訊,該環路位於核心的下游。現在,我們檢視我們的同伴的下行鏈路。
CORE#show cdp neighbors twentyFiveGigE 1/0/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/0/1 144 S I C9300-48P Twe 1/1/1 CORE#show cdp neighbors twentyFiveGigE 1/0/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-B Twe 1/0/2 139 S I C9300-48P Twe 1/1/1
我們剛從DISTRO-A來。我們可以重新訪問DISTRO-A並檢查該交換機上標示為可疑的其他介面/對等體,或者也可以前往DISTRO-B。接下來我們檢查DISTRO-B。
下一跳交換機- DISTRO-B
DISTRO-B#show interfaces | in is up|input rate <snip> 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 4446192309 bits/sec, 4673252 packets/sec <--- Suspicious TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4457101202 bits/sec, 4571365 packets/sec <--- Suspicious TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 136192034 bits/sec, 170261 packets/sec TwentyFiveGigE1/1/4 is up, line protocol is up (connected) 5 minute input rate 4936092202 bits/sec, 4474252 packets/sec <--- Suspicious
現在,我們快速瞭解一下生成樹,以確保情況按預期顯示。
DISTRO-B#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 800 Port 3 (TwentyFiveGigE1/1/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- <snip> Twe1/1/1 Root FWD 800 128.33 P2p Twe1/1/2 Desg FWD 800 128.34 P2p Twe1/1/3 Desg FWD 800 128.33 P2p
Twe1/1/3 Desg FWD 800 128.33 P2p Twe1/1/5 Alt BLK 800 128.34 P2p
此交換器上的跨距數狀目錄符合我們對穩定網路的預期。我們可以看到根埠已按預期收斂,並且與DISTRO-B (Twe1/1/4)塊的互聯已實現。我們的面向接入的介面是指定/轉發介面。
現在我們將調查可疑介面上的同行。
DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID CORE Twe 1/1/1 144 S I C9500-48Y4C Twe 1/0/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-C Twe 1/1/2 139 S I C9300-48P Twe 1/1/1 DISTRO-B#show cdp neighbors twentyFiveGigE 1/1/5 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/5 132 S I C9300-48P Twe 1/1/2
我們剛從CORE公司來,已經參觀過DISTRO-A。根據我們目前的研究結果,邏輯將我們送往ACCESS-C。
ACCESS-C
ACCESS-C#show interfaces | in is up|input rate GigabitEthernet1/0/1 is up, line protocol is up (connected) 5 minute input rate 43012 bits/sec, 34 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute input rate 0 bits/sec, 0 packets/sec
<snip> TwentyFiveGigE1/1/1 is up, line protocol is up (connected) 5 minute input rate 0 bits/sec, 0 packets/sec <-- This interface has zero packets inbound. Normally this means the interface on the other end of the link is blocking. In this scenario we need to take a closer look since the upstream switch is a distribution switch. TwentyFiveGigE1/1/2 is up, line protocol is up (connected) 5 minute input rate 4834056103 bits/sec, 4461235 packets/sec <-- This interface has a suspicious input rate. TwentyFiveGigE1/1/3 is up, line protocol is up (connected) 5 minute input rate 4456091109 bits/sec, 4573242 packets/sec <-- This interface also has a suspicious input rate.
此交換器明顯受回圈影響。兩個介面顯示受害的證據。此外,還有一條通向分佈層的上行鏈路,該上行鏈路異常安靜。我們注意到這些觀察結果,並檢查生成樹,看是否有任何突出之處。
ACCESS-C#show spanning-tree VLAN0001 Spanning tree enabled protocol rstp Root ID Priority 1 Address 380e.4d77.4800 Cost 1600 Port 4 (TwentyFiveGigE1/1/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32769 (priority 32768 sys-id-ext 1) Address b08b.d08d.6b80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Gig1/0/1 Desg FWD 20000 128.01 P2P <snip> Twe1/1/1 Desg FWD 800 128.33 P2p Twe1/1/2 Root FWD 800 128.34 P2p Twe1/1/3 Alt BLK 800 128.33 P2p
同樣,瞭解生成樹操作以及您的網路中的期望值也是有價值的。根據顯示預期生成樹收斂的早期圖表,ACCESS-C預期有兩個阻塞埠。show spanning-tree的輸出中只列出一個阻塞埠,該埠是一個巨大的紅色標籤。因此,在疑難排解時,這個介面可能並不顯眼,所以讓我們看看此交換器上還有什麼異常之處吧。
級聯網路中的接入交換機通常有一個根埠和一個或多個備用根埠。離開根網橋的下行鏈路通常是「指定」和「轉發」。Twe1/1/1顯示為指定埠,這意味著它認為它比其鏈路夥伴更靠近根網橋。我們的圖表中沒有列出埠號,因此讓我們確認哪些裝置連線到可疑裝置上的哪些埠。
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID. <--- There is no neighbor information listed for this interface. Very suspiscious. ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/2 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID ACCESS-B Twe 1/1/2 144 S I C9300-48P Twe 1/1/3
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/3 Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone, D - Remote, C - CVTA, M - Two-port Mac Relay Device ID Local Intrfce Holdtme Capability Platform Port ID DISTRO-A Twe 1/1/3 137 S I C9300-48P Twe 1/1/2
介面Twe1/1/1未列出鄰居。這表示從對等體傳送的CDP幀沒有到達(或到達且無法處理),因此建議在此上下文中使用單向鏈路。目前,有足夠證據進一步審查DISTRO-B和ACCESS-C之間的聯絡。
此介面的輸入速率為零,而我們期望另一端根據其生成樹輸出和介面輸出速率進行轉發。與鏈路兩端都聲稱指定且缺少CDP資訊的意外的STP收斂相結合,此鏈路是單向的。
在這種情況下中斷環路的最快方法是在ACCESS-A上關閉Twe1/1/1。 一旦Twe1/1/1關閉,環路就會實際中斷。一旦環路被物理中斷,廣播風暴將立即開始消退。
這是一個簡化的場景,但演示了這一概念。跟蹤環路源中受影響的介面。
摘要
此場景展示了快速、準確地排除第2層環路故障的基本方法。方法可以概括為以下步驟:
ACCESS-C#show interfaces | in is up|input rate
2. 確定連線到可疑介面的對等裝置。環路位於這些介面之一的下游。 多條路徑指向環路,但所有路徑最終都會指向源。
ACCESS-C#show cdp neighbors twentyFiveGigE 1/1/1
3. 某些網路具有多條轉發路徑的裝置。檢查生成樹,確保拓撲已按預期收斂。確保阻塞介面阻塞。
ACCESS-C#show spanning-tree
合併這些步驟,在裝置之間移動時構建拓撲。您最終會到達回圈的來源。
當某些因素阻止生成樹按預期收斂時,可能會發生環路。在此場景中,單向鏈路導致接入交換機在預期阻塞的鏈路上轉發。
當惡意裝置或可疑裝置環路或將資料流反射回網路時,也會發生廣播風暴。
本文檔中概述的方法可幫助網路專業人員快速定位任何第2層環路或流量反射方案的來源。
最後-為什麼不能使用TCN?
現場的常見做法是在排除環路故障時關注並跟蹤生成樹TCN。我們建議不要這麼做,而要支援投入率。Catalyst 9000系列交換機採用強大的控制平面策略策略(CoPP),以防止由於傳送的流量過多而導致傳送路徑中斷。Catalyst 9000交換機上的CoPP在卷超過平台監察器值時監察BPDU,因此,即使未發現高CPU使用率,Catalyst 9000上的生成樹也將受到損害。其他交換機平台(包括舊式Catalyst)如2960、3560、3750和4k線路不使用CoPP,在環路期間很容易被壓倒。任何裝置都可能受到環路的影響,這會使生成樹與CPU傳送路徑上數百萬個錯誤廣播相競爭。因此,產生的TCN通常是誤報,導致工程師走上錯誤的道路。
Catalyst交換器上提供可強化第2層回圈的選用功能。這些功能和最佳實踐旨在防止出現環路,並在出現環路時減小其影響。
功能
RootGuard -根防護可防止介面成為根埠。如果接收到高級BPDU,該功能將介面置於根不一致狀態。如果網路包含到由其他組織管理的裝置的連線,則此功能特別有用。通常,這適用於面向接入層的分佈層下行鏈路。在穩定的網路中,絕不能期望高級BPDU從下游到達。
環路防護 -通常在STP中,根埠和備用埠接收BPDU,而指定埠傳送BPDU。這種關係可能導致生成樹無法響應單向鏈路。環路防護可防止備用或根埠成為指定埠。如果BPDU不是由介面定期接收和處理的,環路防護會使介面進入err-disabled狀態。
BPDUGuard -如果配置的埠上接收到BPDU,則此功能透過將介面置於err-disable狀態來運行。在邊緣埠上配置此配置,在邊緣埠上不需要其他網路裝置進行連線。此功能通常搭配Portfast使用。
PortFast - Portfast用於邊緣埠-大多數情況下用於接入,但在某些情況下也用於中繼。它允許邊緣埠放棄生成樹的正常階段,直接進行轉發。這從端點的角度節省了時間,並且還防止了不穩定邊緣埠傳輸TCN。Portfast必須始終與BPDUGuard一起使用,以避免在意外連線網路裝置時導致環路。
其他最佳實踐
VLAN作用域 -僅允許在中繼上使用所需的VLAN。這樣可以限制環路的範圍,防止區域性問題演變為全網中斷。
使用非運行VLAN作為本地VLAN -最佳做法是為TRUNK使用非運行VLAN。許多網路使用預設本徵VLAN (1),它覆蓋整個網路。使用非作業VLAN作為原生,以進一步限制回圈的潛在範圍。
使用統一路徑成本計算方法 -自IOS XE 17.6開始,Catalyst 9000系列交換機均預設運行長路徑成本方法。依預設,舊版可能會執行較短版本。預設情況下,大多數舊版Catalyst交換機都運行較短。使用混合路徑成本方法的環境在響應拓撲變化和干擾時遇到問題。確保所有交換機運行相同的方法。有關詳細資訊,請參閱生成樹的相關平台配置指南。
使用「spanning-tree pathcost method <long/short>」命令操縱路徑開銷方法。Show spanning-tree summary用於確認使用的方法。
ACCESS-A(config)#spanning-tree pathcost method ? long Use 32 bit based values for default port path costs short Use 16 bit based values for default port path costs ACCESS-A(config)#spanning-tree pathcost method long <snip>
ACCESS-A#show spanning-tree summary Switch is in rapid-pvst mode Root bridge for: VLAN0001 Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled UplinkFast is disabled BackboneFast is disabled Configured Pathcost method used is long <--- Displays the configured pathcost method.
<snip>
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
14-Nov-2023 |
初始版本 |