STP原理與配置


、環路的產生

 

  • 網絡中通過多交換機、多條鏈路來提高鏈路的冗余性,避免單點故障導致業務中斷,雖然能夠提升網絡可靠性,但同時也會帶來環路問題。

  

 

二、環路引發得問題

  • 廣播風暴:

  當交換機收到一個從主機發過來的單播幀(或者廣播幀)時,假如交換機沒有該目的主機的MAC地址表項,此時交換機會在除了接收端口以外的端口泛洪出去,而其他交換機在接受到也會做同樣的操作。這樣會導致同樣的幀在不停地被轉發,形成廣播風暴。

  • MAC地址表翻轉(震盪)

  交換機MAC地址更新是基於報文的接收端口的,像上面所述,交換機之間形環之后,最終報文還是會轉發回到第一個接收的交換機(從主機接收報文的交換機),那么這時交換機會把與主機連接的端口和MAC更新為最近接收到報文的端口和MAC地址,因為環路可能是多向的,所以會導致MAC地址表不停在更新。

三、STP原理

   生成樹協議STP(Spanning Tree Protocol),在提供高可靠性的同時又能避免環路帶來的問題。STP通過阻塞端口來消除環路,使用網絡鏈路冗余備份。在形成環路的網絡交換機會根據STP的協議具體規定來阻塞某端口,來消除環路,  當在環路上發生故障,會釋放阻塞端口實現備份鏈路傳輸。

  • 根橋選舉:每個交換機上都會有 橋ID(Bridge ID),橋ID由16位的橋優先級(Bridge Priority)48位的MAC地址構成,在選舉根橋時交換機會互發BPDU報文,通過比較里面的優先級(0-65535,默認32768),數值小的優選,如果優先級相等,則會比較MAC地址,同樣數值小的優選。

  STP定義了三種端口角色分別是:根端口、指定端口、備份端口

  • 根端口選舉:非根交換機在選舉根端口時分別依據該端口的根路徑開銷、對端BID、對端PID和本端PID。選舉時會比較根路徑開銷,如果相同,則會比較對端BID;如果對端BID相同,則比較對端PID如果還相同,則比較本端PID,者優先。一般與根交換連接的端口都是根端口。
  • 指定端口選舉:在選舉了根端口之后其他的端口會再次進行比較來選擇指定端。每個網段都應該有一個指定端口,根橋的所有端口都是指定端口(除非根橋在物理上存在環路)。
  • 預備端口:選擇完根端口和指定端口,剩下的就是預備端口。其他端口為預備端口,被阻塞,不能轉發數據,只能夠從所連網段的指定交換機接收到BPDU報文,並以此來監視鏈路的狀態

  STP協議的設備上端口狀態有5種:

  • Forwarding:轉發狀態。端口既可轉發用戶流量也可轉發BPDU報文,只有根端口或指定端口才能進入Forwarding狀態。
  • Learning:學習狀態。端口可根據收到的用戶流量構建MAC地址表,但不轉發用戶流量。增加Learning狀態是為了防止臨時環路。
  • Listening:偵聽狀態。端口可以轉發BPDU報文,但不能轉發用戶流量。
  • Blocking:阻塞狀態。端口僅僅能接收並處理BPDU,不能轉發BPDU,也不能轉發用戶流量。此狀態是預備端口的最終狀態。
  • Disabled:禁用狀態。端口既不處理和轉發BPDU報文,也不轉發用戶流量。

  兩類BPDU:

  

 

 

  • BPDU:包含橋ID、路徑開銷、端口ID、計時器等參數,交換機通過STP協議來交換BPDU來選舉根橋,並定義端口角色。

      在網絡拓撲穩定以后,只有根橋主動發送配置BPDU,其他交換機在收到上游傳來的配置BPDU后,才會發送自己的配置BPDU。

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

  計時器:

 

 

 

  • Message Age:配置BPDU在網絡中傳播的生存期。配置BPDU報文每經過一個交換機,Message Age都加1。
  • Max Age:配置BPDU在設備中能夠保存的最大生存期。如果Message Age大於Max Age(Max Age的超時默認值為20秒),非根橋會丟棄該配置BPDU。
  • Hello Time:配置BPDU發送的周期。
  • Forward Delay:端口狀態遷移的延時。

  故障分析:

  •   根橋故障

  

 

 

  STP拓撲中交換機通過周期性的BPDU來監視鏈路狀態,如果下游交換機收不到根橋對的BPDU,那么會在計時器Max age(20秒)超時后,重新選舉根橋,也就是SWB和SWC會重新進行選舉。

 

  到 forwording狀態大概需要50秒(Max Age 20 s+兩倍Forward Delay 15s×2 = 50s )

 

  • 直連鏈路故障   

  

 

   

  SWB檢測到直連鏈路物理故障后,會將預備端口轉換為根端口。SWB新的根端口會在30 秒Alternate端口會遷移到Listening、Learning、Forwarding)后恢復到轉發狀態。

  • 非直連鏈路故障

  

 

 

 

  非直連鏈路故障(非物理層故障),SWB因此一直收不到來自SWA的BPDU報文,SWC的Alternate端口再也不收到包含原根橋ID的BPDU報文,SWC會切換Alternate端口為指定端口並且轉發來自其根端口的BPDU報文給SWB。所以,Max Age定時器超時后,SWB、SWC幾乎同時會收到對方發來的BPDU。SWC的預備端口恢復到轉發狀態大約需要50秒。

  • 拓撲改變導致MAC地址表錯誤

  

 

 

 

  MAC地址表項的默認老化時間是300秒。在這段時間內,SWB無法將數據從G0/0/2端口轉發給主機B。

  本例中,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轉發該數據幀。

  

  • 拓撲改變導致MAC地址表變化(加速老化)

  

 

 

拓撲變化過程中,根橋通過TCN BPDU報文獲知生成樹拓撲里發生了故障。根橋生成 TC用來通知其他交換機加速老化現有的MAC地址表項。

拓撲變更以及MAC地址表項更新的具體過程如下: SWC感知到網絡拓撲發生變化后,會不間斷地向SWB發送TCN BPDU報文。

SWB收到SWC發來的TCN BPDU報文后,會把配置BPDU報文中的Flags的TCA位設置1,然后發送給SWC,告知SWC停止發送TCN BPDU報文。

SWB向根橋轉發TCN BPDU報文。 SWA把也配置BPDU報文中的Flags的TC位設置為1發送,通知下游設備把MAC地址表項的老化時間由默認的300秒修改為Forward Delay的時間(默認為15秒

最多等待15秒之后,SWB中的錯誤MAC地址表項會被自動清除。此后,SWB就能重新開始MAC表項的學習及轉發操作。

四、STP常用配置命令

stp mode stp                                            // 生成樹的工作模式
stp root primary  |  stp priority 0  |  stp instance 0 root primary       // 手配根橋
stp priority 4096  |……                                  // 改優先級 ,手配備份根橋(其他primary改為secondary)
stp edged-port enable                                   // 配置邊緣端口
dis stp topology-change                                // 查看stp震盪狀態
display stp brief                                      // 查看接口角色
display stp interface                                 // 命令查看端口的STP狀態

 


免責聲明!

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



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