STP初始化與收斂

 

 

 

要保證企業的網絡中的關鍵應用可持續性,就需要對交換網絡進行冗餘設計,然而這將產生廣播風暴、“網絡環路”等問題,嚴重時,將導致整個網絡癱瘓?於是,STP生成樹解決辦法出現了……

    網絡冗餘設計與廣播風暴的矛盾
    廣播風暴的剋星:設計STP網絡生成樹
    技術剖析:STP生成樹初始化與收斂
    案例分析:觀察生成樹收斂過程
    實戰剖析:STP生成樹如何配置?
    技術進化:RSTP快速生成樹配置

    生成樹初始化與收斂
    STP建立一個根節點,稱爲根網橋,並構建了一種拓撲,在這種拓撲中,網絡中每一個節點都只有一條路徑可以到達,最終生成的樹起源於根節點,不屬於最短路徑樹的一部分冗餘鏈路會被阻塞,因爲這樣的路徑被阻塞了,所以實現一個無環路的拓撲是有可能的。在阻塞鏈路上收到數據幀將會被丟棄。

    STP需要網絡設備互相交換消息來檢測橋接環路,交換機發送的用於構建無環路拓撲的消息稱爲網橋協議數據單元。阻塞端口會不斷收到BPDU,以保證當活動路徑或設備發生故障的時候,仍然可以計算出一棵新的生成樹。BPDU將提供足夠的信息,所有交換機利用此信息可以完成以下的工作:

    n         選擇一臺單獨的交換機作爲生成樹的根。
    n         計算它自身到根交換機的最短路徑。
    n         對於每一個LAN網段,指定一臺交換機作爲最接近的交換機,稱它爲指定交換機,指定交換機處理所有從LAN到根交換機的通信。
    n         每個非根交換機選擇自身的一個端口作爲根端口,它是到根交換機路徑最短的接口。
    n         在每個網段上選擇屬於生成樹一部分的端口作爲指定端口,非指定端口將被阻塞掉。

    STP四步初始化原則
    STP在建立無環路邏輯拓撲時候,STP必須遵守“STP 四步初始化原則”,即:
    第1步:最低的根BID。
    第2步:最低的路徑開銷到根橋。
    第3步:最低的發送方BID。
    第4步:更低的端口ID。
    當一臺網橋設備加電起動時,按照(Hello Time)時間間隔爲2秒頻率向所有端口發送BPDU,網橋通過以上4個步驟來確定每個端口得到最優先的BPDU。如果自己最優先,則發送個對方,否則停止發送,接受對方的BPDU。如果在20秒時間未能收到對方發來的優先級高的BPDU的話,則又開始重新發送BPDU來確認最優的BPDU。

 2.生成樹收斂的3個步驟

    當交換機(網橋)全部加電時,所有的網橋全部向連接端口發送BPDU信息,然後立即進入STP無環路邏輯拓撲計算。生成樹從拓撲初始化到收斂成一個無環路的拓撲結構,可以分成3個步驟。
    第1步:選擇根橋(Root Bridge),唯一的根橋被選舉。
    第2步:選擇根端口(Root Ports),其他的網橋計算一系列的根端口。
    第3步:選擇指定端口(Designated ports),用於網段連接。

    1)步驟1:選擇根橋
    如圖8-8所示,網橋啓動時SW-1、SW-2和SW-3 3臺交換機全部發送BPDU聲明自己是網橋,網橋的優先級均爲32768,此時開始比較MAC值。SW-2收到SW-3來的BID 32768.33-33-33-33-33-33,比自己的BID 32768.22-22-22-22-22-22高,認爲自己是網橋,但同時也收到SW-1的BPDU的BID值爲BID 32768.11-11-11-11-11-11比自己低,所以會認爲SW-1爲根橋,SW-3也經過同樣的比較,認爲SW-1爲根橋。圖8-9顯示了根橋計算對比後的結果。

 根橋選舉  

 

根橋選舉結果

    SW-2 BPDU Payload的Root BID值變化如下,Root BID從SW-1學來,寫入到端口1/1上,Sender BID 爲自己的橋BID(注意:Sender BID =Bridge ID)。表8-4爲SW-2選擇前與選擇後的比較。
    表8-4 SW-2如何選擇根橋

BID項
原值(啓動時)
選擇根橋後
Root BID
BID32768.22-22-22-22-22-22
BID 32768.11-11-11-11-11-11
Sender BID
BID32768.22-22-22-22-22-22
BID 32768.22-22-22-22-22-22
 

    2)步驟2:選擇根端口
    選擇根橋完畢之後,非根橋交換機必須選擇一個根端口,以便確定通信路徑。一臺網橋的根端口是離根橋最近的端口,這個“最近原則”是比較端口到根橋的最少路徑開銷,以太網的端口開銷值參見前面的表8-1中的內容。圖8-10顯示了根端口的選舉過程。
    如圖8-10所示,根端口的所有端口的Path Cost值全部爲0,SW-1 和SW-2 爲非根橋,它們必須選擇一個根端口,SW-2 收到從根橋來的Cost值爲0,加上本身自己的Cost值爲19,獲得1/1端口的Cost爲19,而SW-2的1/2端口從SW-3收到的Cost的值爲19,加上自己本身的Cost值19,總共爲38,所以SW的1/1口爲根橋。同理,SW-3的1/1端口爲根端口。
    3)步驟3:選擇一個指定端口
    每一個以太網網段連接的端口必須有一個指定端口,每個以太網網段中的端口比較根橋路徑開銷(Root Path Cost),最低值得爲指定端口。
    下面將說明一種特殊情況。在圖8-11展示的網絡環境中分爲:網段1、網段2和網段3。

根端口的選舉過程    

  

指定端口的選擇過程

    SW-1的端口的根橋路徑開銷均爲0,所有這兩個段的指定端口爲SW-1的1/1和1/2;但是網段3中SW-2和SW-3之間相連的端口的根路徑開銷均爲38,這是必須按照“STP 四步初始化原則”進行比較,最後根據BID的值來決定誰是指定端口。
    網段3的SW-2和SW-3之間選擇指定端口比較過程如表8-5所示。

  SW-2和SW-3之間選擇指定端口比較

   
執 行 內 容
SW-2
SW-3
   
1
最低的根BID
32768.11-11-11-11-11-11
32768.11-11-11-11-11-11
相等,轉下一步
2
最低的根路徑開銷
38
38
相等,轉下一步
3
最低的發送方BID
32768.22-22-22-22-22-22
32768.33-33-33-33-33-33
SW-2的BID值低,所以SW-2的1/2爲指定端口
4
最低的端口ID
-
-
-
 
 
 
 
 
3.生成樹端口狀態

    在啓用Spanning-Tree的交換機,從“推舉了根橋→指定端口→非指定端口來建立一棵無環路樹→根端口→指定端口轉發BPDU配置消息”這個過程結束,而非指定端口阻斷網絡流量。STP關閉端口到轉發流量有5個過程,如下表8-6所示。

交換機端口狀態

   
功能與數據幀接收情況
轉發(Forwarding)
發送/接收用戶數據;接受從其他接口轉發來的數據幀;學習地址(BID的地址);不接受BPDU配置信息
學習(Learning)
丟棄從端口收到的數據幀;丟棄從其他接口轉發來的數據幀;學習地址(BID的地址);接受BPDU配置信息
監聽(Listening)
丟棄從端口收到的數據幀;丟棄從其他接口轉發來的數據幀;不學習地址(BID的地址);接受BPDU配置信息
阻斷(Blocking)
丟棄從端口收到的數據幀;丟棄從其他接口轉發來的數據幀;不學習地址(BID的地址);接受BPDU配置信息。
關閉(Disable)
管理性關閉或線路中斷;丟棄從其他接口轉發來的數據幀;丟棄BPDU轉發數據幀;不學習地址(BID的地址);不接受BPDU配置信息
 

    在完全利用思科設備組成的交換網絡中,可以存在7種端口狀態(Cisco私有的PortFast和UplinkFast)。圖8-12展示了各個端口狀態遷移的過程。

STP運算中端口的狀態遷移圖

    端口狀態遷移情況比較複雜。假設一個端口從Disable狀態或新接入到網絡中來,這時Disable狀態轉到Blocking狀態,Blocking狀態可以接受BPDU數據,在20秒的信息老化時間後,端口進入Listening。再經過15秒的BPDU數據比較,如果該端口接收到的BPDU數據爲最優先的,則進入Learning狀態。這時如果收到的BPDU數據還是沒有比自己更優先的,則再等15秒的轉發延遲,端口進行轉發狀態,整個過程需要50秒左右。

    在上述的各個階段中,如果端口收到比自己更優先的BPDU配置信息,則直接轉入到Blocking狀態。在實際應用中,將一臺電腦插入到啓動了STP功能的交換機上,交換上的端口指示燈爲桔黃色,需要等到20+15+15=50秒,燈才轉爲正常,指示燈爲綠色。這也是爲什麼將客戶端接入交換機後,不能馬上通信的真正原因。

 4.生成樹計時器

    前面我們已經提到某些狀態到另一種狀態情況,這需要花費時間來判斷最優的BPDU配置信息,STP定義了三中STP定時器,如表8-7所示。
    表8-7 生成樹三個計時器屬性

 

定 時 器
功 能 描 述
默 認 值
Hello Time
根橋發送BPDU配置信息的時間間隔
2秒
Foreword Delay
監聽和學習狀態的轉發延時
15秒
Max Age
BPDU配置信息在端口中存儲的時限
20秒

 

    Hello Time是根橋發送BPDU更新的時間間隔,默認爲2秒;Forward Delay(轉發延遲)是網橋在監聽和學習狀態時發生的,默認爲15秒(監聽到學習爲15秒,學習到轉發也是15秒);Max Age網橋存儲BPDU的時間,時間爲20秒,每2秒通過Hello Time來更新,一旦經過20秒時沒有接收到Hello Time來的更新BPDU,網橋端口狀態就要發生變化。

 5.拓撲變化後的收斂

    當非根橋檢測到拓撲改變時,產生TCN BPDU給上一級網橋,上級網橋收到拓撲改變(TC),回覆拓撲改變確認(TCA),繼續向上傳播TCN BPDU,一直傳播到根橋,告訴根橋拓撲已經改變,根橋收到後,根橋傳播到新的配置BPDU到整個網絡,縮短其他根橋的MAC地址老換時間從300秒(300秒爲交換機默認的MAC老化時間)到指定的轉發延遲時間30秒。
    TCN BPDU在以下3種情況發送:
    n         當端口轉入轉發狀態而且網橋至少有一個指定端口。
    n         當一個端口從轉發或學習狀態到阻斷狀態時候。
    n         當指定端口收到TCN BPDU轉發給根橋時。
    TCN BPDU的特性如下:
    n         TCN BPDU僅從根端口發出,配置BPDU僅從指定端口發出。
    n         TCN BPDU發往根橋方向。
    n         TCN BPDU使用可靠機制發送給根橋,當一臺網橋發送TCN BPDU,持續發送按照Hello Time間隔發送BDPU,直到上級網橋確認收到帶有拓撲確認標識(TCA)的配置BPDU。
    n         TCN BPDU只有在拓撲改變時才發送。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章