STP拓撲變化


STP中BPDU報文字段:
    PID:協議標識
    PVI:協議版本標識(STP默認為0)2為RSTP
    BPDU Type:BPDU類型:配置BPDU、TCN BPDU(拓撲變更通告)

    配置BPDU包含了橋ID、路徑開銷和端口ID等參數。STP協議通過在交換機指間傳遞配置BPDU來選舉根交換機,以及確定每個交換機端口的角色和狀態。在初始化過程中,每個橋都主動發送配置BPDU 。在網絡拓撲穩定以后,只有根橋主動發送配置BPDU,其他交換機在收到上游傳來的配置BPDU后,才會發送自己的配置BPDU

    TCN BPDU是指下游交換機感知到拓撲發生變化時向上游發送的拓撲變化通知

    Flags:標識:TCA(拓撲變更確認)、TC(拓撲變更)
    Root ID:根橋ID
    RPC:根路徑開銷
    BID:橋ID 由橋優先級和MAC地址組成
    PID:端口ID 由端口優先級+端口標識
    message age:信息生存時間,如果配置BPDU是根橋發出的,則Message Age為0 。否則,Message Age是從根橋發送到當前橋接收到BPDU的總時間,包括傳輸延時等。實際實現中,配置BPDU報文每經過一個交換機,Message Age增加1
    max age:最大超時時間,默認20s,是指BPDU報文的老化時間,可在根橋上通過命令人為改動這個值。Max Age通過配置BPDU報文的傳遞,可以保證Max Age在整網中一致。非根橋設備收到配置BPDU報文后,會將報文中的 Message Age和Max Age進行比較:如果Message Age小於等於 Max Age,則該非根橋設備會繼續轉發配置BPDU報文。如果 Message Age大於Max Age,則該配置BPDU報文將被老化掉。該非根橋設備將直接丟棄該配置BPDU,並認為是網絡直徑過大,導致了根橋連接失敗
    hello time:默認2s發送一次BPDU,是指運行STP協議的設備發送配置BPDU的時間間隔,用於檢測鏈路是否存在故障。交換機每隔Hello Time時間會向周圍的交換機發送配置BPDU報文,以確認鏈路是否存在故障。當網絡拓撲穩定后,該值只有在根橋上修改才有效。
    fwd delay:轉發延時,默認為15s

  STP拓撲變化過程

STP路徑開銷(推薦值):
IEEE802.1d-1998大部分都是這個但是無法適配高速接口>40G 出現了IEEE802.1t 華為默認802.1t

    根橋故障:非根橋會在BPDU老化后開始根橋的重新選舉

      在穩定的STP拓撲里,非根橋會定期收到來自根橋的BPDU報文。如果根橋發生了故障,停止發送BPDU報文,下游交換機就無法收到來自根橋的BPDU報文。如果下游交換機一直收不到BPDU報文,Max Age定時器就會超時(Max Age的默認值為20秒),從而導致已經收到的BPDU報文失效,此時,非根交換機會互相發送配置BPDU報文,重新選舉新的根橋。根橋故障會導致50秒左右的恢復時間,恢復時間約等於 Max Age加上兩倍的Forward Delay收斂時間

    直連鏈路(直連根橋)故障:將預備端口轉換為根端口,新的根端口在30s后恢復到轉發狀態

    此例中,SWA和SWB使用了兩條鏈路互連,其中一條是主用鏈路,另外一條是備份鏈路。生成樹正常收斂之后,如果SWB檢測到根端口的鏈路發生物理故障,則其Alternate端口會遷移到Listening、 Learning、 Forwarding狀態,經過2倍的Forward Delay后恢復到轉發狀態

    非直連鏈路故障:恢復到轉發狀態要50s(max age+兩倍forward delay時間)

      本例中,SWB不SWA之間的鏈路發生了某種故障(非物理層故障), SWB因此一直收不到來自SWA的BPDU報文。此時,SWB會認為根橋SWA不再有效,於是開始發送BPDU報文給SWC,通知SWC自己作為新的根橋。SWC也會繼續從原根橋接收BPDU報文,因此會忽略SWB 發送的BPDU報文。由於SWC的Alternate端口再也不能收到包含原根橋 ID的BPDU報文。其Max Age定時器超時后,SWC會切換Alternate端口為指定端口並且轉發來自其根端口的BPDU報文給SWB。SWB放棄宣稱自己是根橋並開始收斂端口為根端口。非直連鏈路故障后,由於需要等待Max Age加上兩倍的Forward Delay時間,端口需要大約50秒才能恢復到轉發狀態

    拓撲變更導致mac地址表錯誤:要經過mac地址表項的默認老化時間300s,這期間無法正確轉發

      在交換網絡中,交換機依賴MAC地址表轉發數據幀。缺省情況下, MAC地址表項的老化時間是300秒。如果生成樹拓撲發生變化,交換機轉發數據的路徑也會隨着發生改變,此時MAC地址表中未及時老化掉的表項會導致數據轉發錯誤,因此在拓撲發生變化后需要及時更新MAC地址表項。
本例中,SWB中的MAC地址表項定義了通過端口GigabitEthernet 0/0/3 可以到達主機A,通過端口GigabitEthernet 0/0/1可以到達主機B。由於SWC的根端口產生故障,導致生成樹拓撲重新收斂,在生成樹拓撲完成收斂之后,從主機A到主機B的幀仍然不能到達目的地。這是因為MAC地址表項老化時間是300秒,主機A發往主機B的幀到達SWB后,SWB會繼續通過端口GigabitEthernet 0/0/1轉發該數據幀

      拓撲變化過程中,根橋通過TCN BPDU報文獲知生成樹拓撲里發生了故障。根橋生成TC用來通知其他交換機加速老化現有的MAC地址表項。
      拓撲變更以及MAC地址表項更新的具體過程如下:
      1. SWC感知到網絡拓撲發生變化后,會不間斷地向SWB發送TCN
      BPDU報文。
      2. SWB收到SWC發來的TCN BPDU報文后,會把配置BPDU報文中的 Flags的TCA位設置1,然后發送給SWC,告知SWC停止發送TCN BPDU報文。
      3. SWB向根橋轉發TCN BPDU報文。
      4. SWA把配置BPDU報文中的Flags的TC位設置為1后發送,通知下游設備把MAC地址表項的老化時間由默認的300秒修改為 Forwarding Delay的時間(默認為15秒)。
      5. 最多等待15秒之后,SWB中的錯誤映射關系會被自動清除。此后, SWB就能通過G0/0/2端口把從主機A到主機B的幀正確地進行轉發

參考:https://blog.csdn.net/weixin_43955429/article/details/89855826


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM