開啟 STP ( undo stp disable / stp enable / stp mode stp ) 導致的同TOR業務服務受損. 踩坑筆記


 STP 默認是不會開啟的 (base網絡架構,不同)

 

對於單TOR如果開啟了STP,一個端口 (到服務器)的抖動,會觸發 TC報文 ,導致刷掉MAC 和 ARP ,而在刷新期間,南下的流量會因為需要泛洪導致服務應答時間變長,如果一個口在頻繁的抖動,會引起STP反復的收斂 ,導致服務受損;

 

STP其他知識點復習:

 

 

簡介

STP(Spanning Tree Protocol)是運行在交換機上的二層破環協議,環路會導致廣播風暴、MAC地址表震盪等后果,STP的主要目的就是確保在網絡中存在冗余路徑時,不會產生環路。

STP是數通的基本特性,交換機、路由器、WLAN等產品均支持配置STP。本章節以華為CloudEngine系列交換機為例進行介紹。

 

了解STP

STP是一個用於局域網中消除環路的協議,它的標准是IEEE 802.1D。運行該協議的設備通過彼此交互信息而發現網絡中的環路,STP將部分冗余鏈路強制為阻塞狀態,其他鏈路處於轉發狀態。當處於轉發狀態的鏈路不可用時,STP重新配置網絡,並激活合適的備用鏈路狀態。

由於局域網規模的不斷增長,生成樹協議已經成為當前最重要的局域網協議之一。

三要素選舉

從環形網絡拓撲結構到樹形結構,總體來說有三個要素:根橋、根端口和指定端口。

  • 根橋:對於一個STP網絡,根橋在全網中只有一個,它是整個網絡的邏輯中心,但不一定是物理中心。在進行根橋的選擇時,一般會選擇性能高、網絡層次高的交換設備作為根橋。根橋會根據網絡拓撲的變化而動態變化。在配置STP過程中,建議手動配置根橋和備份根橋。請配置最核心的交換設備為根橋,以保證STP二層網絡的穩定性,否則新接入設備可能會觸發STP根切換,從而導致業務短暫中斷。
  • 根端口:去往根橋路徑開銷最小的端口,根端口負責向根橋方向轉發數據,這個端口的選擇標准是依據路徑開銷判定。在一台設備上所有使能STP的端口中,根路徑開銷最小者,就是根端口。很顯然,在一個運行STP協議的設備上根端口有且只有一個,根橋上沒有根端口。
  • 指定端口:指定橋向本設備轉發配置消息(BPDU報文)的端口或者指定橋向本網段轉發配置消息的端口,如圖1所示:

    AP1、AP2、BP1、BP2、CP1、CP2分別表示設備S1、S2、S3的端口。

    • S1通過端口AP1向S2轉發配置消息,則S2的指定橋就是S1,指定端口就是S1的端口AP1。

    • 與局域網LAN相連的有兩台設備:S2和S3,如果S2負責向LAN轉發配置消息,則LAN的指定橋就是S2,指定端口就是S2的BP2。
      圖1-1 指定橋與指定端口示意圖

此外,交換設備和端口都有ID,分別是橋ID(BID)和端口ID(PID)。端口ID由端口優先級和端口號組成。橋ID由橋優先級和橋MAC兩部分組成,在STP網絡中,橋ID最小的設備會被選舉為根橋。

一旦根橋、根端口、指定端口選舉成功,則整個樹形拓撲建立完畢。在拓撲穩定后,只有根端口和指定端口轉發流量,其他的非根、非指定端口都處於阻塞(Blocking)狀態,它們只接收STP協議報文而不轉發用戶流量。

STP報文格式

上述橋ID、路徑開銷和端口ID等信息都是通過BPDU協議報文傳輸的。BPDU報文被封裝在以太網數據幀中,目的MAC是組播MAC:01-80-C2-00-00-00,Length/Type字段為MAC數據長度,后面是LLC頭,LLC之后是BPDU報文頭。以太網數據幀格式如圖2所示。

圖1-2 以太網數據幀格式

在初始化過程中,每個橋都主動發送配置BPDU。但在網絡拓撲穩定以后,只有根橋主動發送配置BPDU,其他橋在收到上游傳來的配置BPDU后,才觸發發送自己的配置BPDU。配置BPDU的長度至少要35個字節,包含了橋ID、路徑開銷和端口ID等參數,即{根橋ID,累計根路徑開銷,發送者BID,發送端口PID}。只有當發送者的BID或端口的PID兩個字段中至少有一個和本橋接收端口不同,BPDU報文才會被處理,否則丟棄。這樣避免了處理和本端口信息一致的BPDU報文。

STP實現過程

STP的樹形結構實現過程如下:

  1. 網絡初始化時,網絡中所有的STP設備都認為自己是“根橋”,根橋ID為自身的設備ID。通過交換BPDU消息,設備之間比較根橋ID,網絡中根橋ID最小的設備被選為根橋。根橋上的所有端口都是轉發狀態。

  2. 非根橋設備將接收最優配置消息的那個端口定為根端口,根端口也是處於轉發狀態。
  3. 設備根據根端口的配置消息和根端口的路徑開銷,為每個端口計算一個指定端口配置消息,然后將計算出的配置消息與角色待定端口自己的配置消息進行比較:
    • 如果計算出的配置消息更優,則該端口被確定為指定端口,其配置消息也被計算出的配置消息替換,並周期性地向外發送;

    • 如果該端口自己的配置消息更優,則不更新該端口的配置消息並將該端口阻塞。該端口將不再轉發數據,且只接收不發送配置消息。

      • ---------------------------
        • 啟動STP

          1. 執行命令system-view,進入系統視圖。
          2. 執行命令stp mode stp,配置交換設備的STP模式。

             

            缺省情況下,交換機運行MSTP模式,MSTP模式兼容STP和RSTP模式。

             

          3. (可選)配置根橋和備份根橋

             

            • 在欲配置為根橋的設備上執行命令:stp root primary,配置當前設備為根橋設備。
            • 在欲配置為備份根橋的設備上執行命令:stp root secondary,配置當前設備為備份根橋設備。

             

          4. (可選)執行命令stp priority priority,配置交換設備在系統中的優先級。

             

            缺省情況下,交換設備的優先級取值為32768。數值越小,優先級越高,成為根橋的可能性越大。對於網絡中部分性能低、網絡層次低的交換設備,不適合作為根橋設備,一般會配置其低優先級以保證該設備不會成為根橋。

             

          5. (可選)執行命令stp pathcost-standard { dot1d-1998 | dot1t | legacy },配置端口路徑開銷計算方法。

             

            缺省情況下,路徑開銷值的計算方法為IEEE 802.1t(dot1t)標准方法。同一網絡內所有交換設備的端口路徑開銷應使用相同的計算方法。

             

          6. (可選)配置端口路徑開銷值及優先級

             

            1. 執行命令interface interface-type interface-number,進入參與生成樹協議計算的接口視圖。
            2. 執行命令stp cost cost,設置當前端口的路徑開銷值。

              存在環路的網絡環境中,對於鏈路速率值相對較小的端口,建議將其路徑開銷值配置相對較大,以使其在生成樹算法中被選舉成為阻塞端口,阻塞其所在鏈路。

            3. 執行命令stp port priority priority,配置端口的優先級。

              缺省情況下,交換設備端口的優先級取值是128。

              如果希望將某交換設備的端口阻塞從而破除環路,則可將其端口優先級設置比缺省值大,使得在選舉過程中成為被阻塞的端口。

            4. 執行命令quit,退回系統視圖。

             

          7. 執行命令stp enable,使能交換設備的STP功能。
          8. 執行命令commit,提交配置。
           

          STP其他配置

          如果您想了解STP的其他配置及RSTP的配置,如網絡直徑、超時時間、定時器、邊緣端口等,請參見CloudEngine 8800, 7800, 6800, 5800 V200R005C10 配置指南-以太網交換中的“STP/RSTP配置”。

           

          配置STP示例

          以下圖的組網環境為例,介紹STP的配置步驟、查看配置結果。

          圖1-3 配置STP功能組網圖
          1. 在SwitchA上配置生成樹協議為STP模式,配置SwitchA為根橋,路徑開銷計算方法為華為私有計算方法。
            <SwitchA> system-view
            [~SwitchA] stp mode stp
            [*SwitchA] stp root primary
            [*SwitchA] stp pathcost-standard legacy
            [*SwitchA] commit
          2. 在SwitchB上配置生成樹協議為STP模式,配置SwitchB為備份根橋,路徑開銷計算方法為華為私有計算方法,並關閉與Server2相連端口的STP功能。
            <SwitchB> system-view
            [~SwitchB] stp mode stp
            [*SwitchB] stp root secondary
            [*SwitchB] stp pathcost-standard legacy
            [*SwitchB] interface 10ge 1/0/2
            [*SwitchB-10GE1/0/2] stp disable
            [*SwitchB-10GE1/0/2] commit
          3. 在SwitchC上配置生成樹協議為STP模式,路徑開銷計算方法為華為私有計算方法,接口10GE1/0/1的路徑開銷值為20000,並關閉與Server1相連端口的STP功能。
            <SwitchC> system-view
            [~SwitchC] stp mode stp
            [*SwitchC] stp pathcost-standard legacy
            [*SwitchC] interface 10ge 1/0/1
            [*SwitchC-10GE1/0/1] stp cost 20000
            [*SwitchC-10GE1/0/1] quit
            [*SwitchC] interface 10ge 1/0/2
            [*SwitchC-10GE1/0/2] stp disable
            [*SwitchC-10GE1/0/2] commit
          4. 在SwitchD上配置生成樹協議為STP模式,路徑開銷計算方法為華為私有計算方法。
            <SwitchD> system-view
            [~SwitchD] stp mode stp
            [*SwitchD] stp pathcost-standard legacy
            [*SwitchD] commit
          5. 環網中所有設備均使能STP。以SwitchA為例,在SwitchB、SwitchC和SwitchD上執行相同的操作。
            [~SwitchA] stp enable
            [*SwitchA] commit
          6. 驗證配置結果。待網絡穩定后,可以執行display stp brief查看端口角色和端口狀態等信息,以SwitchA為例:
            [~SwitchA] display stp brief
             MSTID  Port                        Role  STP State    Protection      Cost    Edged
                 0  10GE1/0/1                   DESI  forwarding    none              2     disable
                 0  10GE1/0/2                   DESI  forwarding    none              2     disable
 


免責聲明!

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



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