簡介
本文說明如何快速配置主幹。Backbone fast是Cisco的專有功能,一旦在網橋網路的所有交換機上啟用,當交換機從間接鏈路故障中恢復時,最多可以節省20秒(max_age)。快速檢視一些跨距樹狀目錄通訊協定(STP)基本資訊後,您可以看到主幹快速套用的確切故障案例,以及如何為執行CatOS和Cisco IOS®軟體的Catalyst交換器設定該案例。
必要條件
需求
本文件沒有特定需求。
採用元件
本文中的資訊係根據以下軟體和硬體版本:
-
執行Cisco IOS軟體版本12.1(6)EA2和更新版本的Catalyst 2950系列交換器
-
執行Cisco IOS軟體版本12.1(4)EA1和更新版本的Catalyst 3550系列交換器
-
執行CatOS 5.1(1a)和更新版本的Catalyst 4000系列交換器
-
執行Cisco IOS軟體版本12.1(8a)EW和更新版本的Catalyst 4500/4000系列交換器
-
執行CatOS版本4.1(1)和更新版本的Catalyst 5500/5000系列交換器
-
執行CatOS版本5.1(1)CSX和更新版本的Catalyst 6500/6000系列交換器
-
執行Cisco IOS軟體版本12.0-7XE和更新版本的Catalyst 6500/6000系列交換器
BPDU及其比較方法
網橋通訊協定資料單元(BPDU)可以根據其傳輸的欄位進行嚴格分類。這些欄位包括根網橋ID、到根的路徑開銷和傳送方網橋ID。BPDU被認為比另一個BDPU更好,原因如下:
-
當一個BPDU的根網橋ID比另一個BPDU更高時。值越低,越好。
-
如果根網橋ID值相等,則到達根的路徑開銷最低的BPDU會更好。
-
當根網橋ID值相等且根的成本相等時,具有更好的傳送方網橋ID的BPDU會更好。值越低,越好。
還有其它一些變數可以起到斷頭的作用。但是,BPDU越好,對最佳根網橋的訪問就越好。
如果網橋在比其傳送埠更好的埠上接收BPDU,則將該埠置於阻塞模式,除非它是其根埠。這表示在連線到此連線埠的網段上,有另一個橋接器是指定橋接器。網橋儲存當前指定網橋傳送的埠上的BPDU值。
STP如何從間接鏈路故障中恢復
這說明了STP在間接鏈路故障後必須重新計算時的行為,即網橋由於非直接連線的鏈路發生故障而必須更改其某些埠的狀態時。
請考慮以下圖表,其中包含全網狀拓撲中的三台交換機R、B和S。假定R是根網橋,B是備用根網橋。S阻塞其埠P,B是鏈路L3的指定網橋。
-
如果鏈路L1關閉,交換機B會立即檢測到故障並假設它是根。它開始向S傳送BPDU並宣告自己是新的根。
-
當S收到來自B的這個新的BPDU時,它意識到它比為埠P儲存的要差,因此忽略它。
-
max_age計時器到期後(預設情況下為20秒),儲存在埠P的BPDU將過期。連線埠會立即進入偵聽,S開始將其更好的BPDU傳送到B。
-
B從S收到BPDU後,即會停止傳送其BPDU。
-
埠P通過偵聽和學習狀態移動到轉發狀態。這會花費fw_delay值的兩倍,即另外30秒。然後恢復完全連線。
從該間接鏈路故障中恢復時,需要max_age值(20秒)加上兩倍的fw_delay值(2x15秒)。預設引數為50秒。主幹快速功能建議儲存max_age(20秒)。 為此,在連線埠接收次級BPDU後,它會立即老化出去。
標準STP的骨幹快速增強功能
在上一個示例中,STP使由於間接鏈路故障而出現錯誤的資訊無效。為此,它會被動等待max_age。為了擺脫此max_age延遲,骨幹網快速技術引入了兩種增強功能:
檢測間接連結故障
如果在指定網橋的埠上接收到下級BPDU,則此網橋已丟失根,並開始通告具有更高網橋ID的根,該根比我們的根差。
在電氣和電子工程師協會(IEEE)規範方面,通常的行為是忽略任何劣質BPDU。Backbone fast會使用它們,因為一旦收到一個埠,確定到根的路徑上發生了故障,而且您至少必須使一個埠老化。
附註:在網路中不會生成任何次級BPDU的情況下,可能會發生間接鏈路故障。只需在上圖中新增集線器:
根網橋R和集線器之間的鏈路出現故障。B未檢測到鏈路發生故障,它等待max_age後再宣告其為新的根。請記住,僅當網橋檢測到直接鏈路故障時,該機制才起作用。
僅跟蹤指定網橋傳送的次級BPDU。因為這是儲存在埠上的BPDU。例如,如果新插入的網橋開始傳送下級BPDU,它不會啟動主幹快速功能。
對間接鏈路故障做出反應
當在非指定埠上檢測到下級BPDU時,會觸發主幹快速的第二階段。RLQ PDU會引入主動式方法來立即測試埠,而不是被動等待max_age來老化可能受到故障影響的埠。RLQ用於實現一種針對非指定埠上的根的ping,並允許快速確認儲存在埠上的BPDU是否仍然有效或需要丟棄。
從指定網橋收到下級BPDU時,在所有非指定埠上傳送RLQ PDU,收到下級BPDU和自環埠的連線埠除外。這是為了檢查您仍會從您用來接收BPDU的連線埠上的根目錄收到訊息。接收下級BPDU的埠被排除,因為您已經知道它遇到故障,自環和指定埠沒有用處,因為它們不會導致根。
在連線埠上收到RLQ回應時,如果回應為負數,則連線埠會失去與根的連線,而且您可以使其BPDU老化。此外,如果所有其他非指定埠都已收到否定應答,則整個網橋會丟失根,並從零開始計算STP。
如果答案確認您仍然可以通過此埠訪問根網橋,您可以立即將最初接收下級BPDU的埠老化。
在本例中,埠A、B、D和E是交換機S的非指定埠。A是根埠,其他埠處於阻塞狀態。當E收到下級BPDU(1)時,主幹快速啟動以加快STP重新計算。
發出RLQ請求,該請求在所有非指定埠上查詢根R,但E(2)除外。 回覆指定哪些根可以通過這些埠訪問。D收到的RLQ響應指定D丟失了其到根R的路徑。立即將其BPDU保留為過期(3)。 連線埠A和B會收到確認它們仍具有到達R(4)的路徑。 因此,當交換機S仍然連線到根時,立即將埠E老化,繼續執行常規STP規則(5)。
如果交換機只收到根與R不同的響應,則認為根已丟失,並立即從頭開始重新啟動STP計算。請注意,當網橋上唯一的非指定(和非自環路)埠是根埠,並且您在此埠上收到下級BPDU時,也會發生這種情況。
根鏈路查詢PDU
RLQ的兩種形式是RLQ請求和RLQ響應。
RLQ請求在您通常接收BPDU的連線埠上發出,以便檢查您仍然可以通過此連線埠連線到根。在請求中指定哪個網橋是您的根網橋,RLQ響應最終會返回一個可通過此埠訪問的根網橋。如果兩個根相同,則連線仍然有效,否則連線將丟失。
接收RLQ請求的網橋如果知道已丟失與所查詢根的連線(因為它的根網橋與RLQ查詢中指定的根網橋不同),以及它是根,會立即作出響應。
如果情況並非如此,則它會通過根埠將查詢轉發到根。
RLQ響應在指定埠上泛洪。RLQ請求的傳送方將其網橋ID放在PDU中。這是為了確保它收到對自身查詢的回覆時,不會在其指定埠上泛洪響應。
RLQ PDU與普通STP BPDU具有相同的資料包結構。唯一的區別是使用了兩個不同的思科特定SNAP地址:一個用於請求,一個用於回覆。
以下是標準BPDU格式:
DA |
SA |
長度 |
DSAP |
SSAP |
CNTL |
快照 |
PDU |
|
|
|
|
|
|
|
|
PDU欄位為:
協定識別符號 |
版本 |
消息型別 |
標誌 |
根ID |
根路徑開銷 |
發件人ID |
埠ID |
消息期限 |
最長使用期限 |
Hello 時間 |
轉撥延遲 |
|
|
|
|
|
|
PDU中使用的消息型別也不同於標準BPDU。
僅使用的欄位是根ID和發件人網橋ID。
要在網路中的所有交換機上配置此思科特定功能,才能處理這些PDU。
啟用骨幹快速功能的示例場景
此案例基於第一個範例,但這次是在三台交換器上啟用了backbone fast。
-
第一階段完全如前所述。
-
一旦S收到來自B的次級BPDU,它就會開始重新確認其非指定埠,而不是等待max_age。它在其根埠上為根網橋R傳送RLQ查詢。
-
根網橋R收到查詢並立即使用RLQ響應進行響應,該響應指定在該方向上仍有一個根R。
-
現在已檢查了所有非指定埠,並且仍然可以連線到根。然後,它可以立即使儲存在埠P上的資訊老化。P轉換到偵聽並開始傳送BPDU。在這個階段,您已經儲存了max_age秒,然後應用了標準生成樹演算法(STA)。
-
B收到來自S的更好BPDU(R比B更好),現在將通向L3的連線埠視為其根連線埠。
為CatOS和Cisco IOS快速配置主幹
使用時,必須在網路中的所有交換器上啟用backbone fast,因為backbone fast需要使用RLQ Request and Reply機制來通知交換器根路徑穩定性。只有在交換機上啟用了backbone fast時,RLQ協定才處於活動狀態。此外,如果沒有在所有交換機上啟用backbone fast ,網路也會遇到RLQ泛洪問題。預設情況下,骨幹快速功能處於禁用狀態。
Catalyst 2900XL和3500XL交換器不支援快速主幹。一般情況下,如果交換器網域除了包含其他支援的Catalyst交換器外,還包含這些交換器,則需要快速啟用骨幹。在具有XL交換機的環境中,在嚴格的拓撲下,當您快速實施主幹時,可以啟用以下功能:XL交換機是線路中的最後一個交換機,並且只在兩個位置連線到核心。如果XL交換機的架構採用菊花鏈方式,請不要實施此功能。
您無需使用RSTP或IEEE 802.1w快速配置主幹,因為此機制在RSTP中原生包含並自動啟用。有關RSTP或IEEE 802.1w的詳細資訊,請參閱從PVST+到快速PVST的生成樹遷移配置示例。
CatOS的組態
對於執行CatOS的Catalyst 4000、5000和6000系列交換器,請使用這些命令以對所有連線埠啟用快速全域骨幹網並驗證設定。
Console> (enable) set spantree backbonefast enable
Backbonefast enabled for all VLANs
Console> (enable) show spantree backbonefast
! This command show that the backbonefast feature is enabled.
Backbonefast is enabled.
Console> (enable)
若要顯示骨幹快速統計資訊:
Console> (enable) show spantree summary
Summary of connected spanning tree ports by vlan
Uplinkfast disabled for bridge.
Backbonefast enabled for bridge.
Vlan Blocking Listening Learning Forwarding STP Active
----- -------- --------- -------- ---------- ----------
1 0 0 0 1 1
Blocking Listening Learning Forwarding STP Active
----- -------- --------- -------- ---------- ----------
Total 0 0 0 1 1
BackboneFast statistics
! The show spantree summary command displays all backbonefast statistics.
-----------------------
Number of inferior BPDUs received (all VLANs): 0
Number of RLQ req PDUs received (all VLANs): 0
Number of RLQ res PDUs received (all VLANs): 0
Number of RLQ req PDUs transmitted (all VLANs): 0
Number of RLQ res PDUs transmitted (all VLANs): 0
Console> (enable)
Cisco IOS配置
對於搭載Cisco IOS軟體的Catalyst交換器,請使用以下命令以對所有介面全域啟用快速主幹。
CAT-IOS# configure terminal
CAT-IOS(config)# spanning-tree backbonefast
CAT-IOS(config)# end
CAT-IOS#
若要驗證是否已啟用Backbone fast且顯示統計資訊:
CAT-IOS# show spanning-tree backbonefast
BackboneFast is enabled
BackboneFast statistics
-----------------------
Number of transition via backboneFast (all VLANs) : 0
Number of inferior BPDUs received (all VLANs) : 0
Number of RLQ request PDUs received (all VLANs) : 0
Number of RLQ response PDUs received (all VLANs) : 0
Number of RLQ request PDUs sent (all VLANs) : 0
Number of RLQ response PDUs sent (all VLANs) : 0
CAT-IOS#
相關資訊