計算機網絡(九)——STP原理


交換網絡中通常會使用冗余鏈路來提高網絡的可靠性。然而,冗余鏈路會給交換網絡帶來環路風險,並導致廣播風暴以及MAC地址表不穩定等問題,進而會影響到用戶的通信質量。

生成樹協議STP(Spanning Tree Protocol)是可以用來解決冗余鏈路所帶來的問題

冗余鏈路解決了單條鏈路出現故障導致業務中斷問題,雖然增強了網絡的可靠性,但是也會產生環路,而環路會帶來一系列的問題,繼而導致通信質量下降和通信業務中斷等問題。

1、環路引發的問題

1.1 廣播風暴

廣播幀在有環路的交換網絡中會被無限轉發,網絡中的主機接受到大量的重復數據幀,這種情況稱之為網絡風暴。造成的影響:

  1. 網絡中充滿了廣播數據幀;
  2. 轉發和處理這些無用的數據幀會浪費交換機和網絡主機的性能;
  3. 交換機地址表震盪會造成數據轉發錯誤;

本例中,假設此單播幀的目的MAC地址在網絡中所有交換機的MAC地址表中都暫時不存在。

主機A向外發送了一個單播幀,將其轉發到SWA和SWC,SWA和SWC也會將此幀轉發到除了接收此幀的其他所有端口,結果此幀又會被再次轉發給SWB,這種循環會一直持續,於是便產生了廣播風暴。

1.2 MAC地址表震盪

MAC地址表震盪就是,同一個交換機有兩個或兩個以上接口可以接收到同一個MAC地址導致MAC地址與交換機端口的對應關系經常發生變化。

交換機是根據所接收到的數據幀的源地址和接收端口生成MAC地址表項的。假設此單播幀的目的MAC地址在網絡中所有交換機的MAC地址表中都暫時不存在。

  1. 主機A向外發送一個單播幀。SWB收到此數據幀之后,在MAC地址表中生成一個MAC地址表項,00-01-02-03-04-AA,對應端口為G0/0/3,並將其從G0/0/1和G0/0/2端口轉發。此例僅以SWB從G0/0/1端口轉發此幀為例進行說明。
  2. SWA接收到此幀后,由於MAC地址表中沒有對應此幀目的MAC地址的表項,所以SWA會將此幀從G0/0/2轉發出去。
  3. SWC接收到此幀后,由於MAC地址表中也沒有對應此幀目的MAC地址的表項,所以SWC會將此幀從G0/0/2端口發送回SWB,也會發給主機B。
  4. SWB從G0/0/2接口接收到此數據幀之后,生成一個新的表項,00-01-02-03-04-AA,覆蓋原有的MAC地址表。對應端口為G0/0/2。

此過程會不斷重復,從而導致MAC地址表震盪。

2、STP生成樹協議

2.1 STP的主要作用:(無用時阻斷冗余鏈路,需要時啟用)

  • 消除環路:通過阻塞端口來消除網絡中可能存在的環路。
  • 鏈路備份:當活動路徑發生故障時,激活備份鏈路,及時恢復網絡連通性。

2.2 STP工作方式

每個STP網絡中,都會有且只有一個根橋(根交換機),其他交換機為非根橋。

根橋或者根交換機位於整個邏輯樹的根部,是STP網絡的邏輯中心;非根橋是根橋的下游設備。當現有根橋產生故障時,非根橋之間會交互信息並重新選舉根橋,交互的這種信息被稱為BPDU。BPDU中包含交換機在參加生成樹計算時的各種參數信息。

STP中定義了三種端口角色:指定端口,根端口、預備端口(阻塞端口)

  • 根端口是非根交換機去往根橋路徑最優的端口。在一個運行STP協議的交換機上最多只有一個根端口,但根橋上沒有根端口。(非根交換機上有)
  • 指定端口是交換機向所連網段轉發配置BPDU的端口,每個網段有且只能有一個指定端口。一般情況下,根橋的每個端口都是指定端口。(所有交換機都有)
  • 如果一個端口既不是指定端口也不是根端口,則此端口為預備端口。預備端口將被阻塞。

2.3 根橋選舉(根橋的產生方式

STP中根橋的選舉依據的是橋ID,STP中的每個交換機都會有一個橋ID(Bridge ID)橋ID=16位的橋優先級+48位的MAC地址

在STP網絡中,橋優先級的取值范圍是0~65535,默認值為32768優先級最高的設備(數值越小越優先)會被選舉為根橋。如果優先級相同,則會比較MAC地址,MAC地址越小則越優先

交換機啟動后就自動開始進行生成樹收斂計算(橋ID比較)。

默認情況下,所有啟動STP的交換機啟動時都認為自己是根橋,自己的所有端口都為指定端口,這樣BPDU報文(橋協議數據單元)就可以通過所有端口轉發。當某一個端口收到自己發送的BPDU報文后,會阻塞掉該端口;而對端交換機收到BPDU報文后,會比較BPDU中的根橋ID和自己的橋ID。

  • 如果收到的BPDU報文中的橋ID優先級低,接收交換機會繼續通告自己的配置BPDU報文給鄰居交換機。
  • 如果收到的BPDU報文中的橋ID優先級高,則交換機會修改自己的BPDU報文的根橋ID字段,宣告新的根橋。

最后會在整個網絡中會有一個橋ID最小的交換機,這個交換機就是整個網絡的根橋。

2.4 根端口選舉(通往根橋最優端口的選舉

非根交換機在選舉根端口時分別依據該端口的根路徑開銷對端BID(Bridge ID)對端PID(Port ID)和自身本端PID

端口開銷:交換機端口的一個參數,表示該端口在STP中的開銷值。參數大小與端口的帶寬有關,帶寬越高,開銷越小。

路徑開銷:非根橋到根橋的路徑上所有接收BPDU的端口的端口開銷總和(即BPDU的入方向端口),稱為路徑開銷。

根路徑開銷:非根橋通過對比多條路徑的路徑開銷,到達根橋的最短路徑,這條路徑的路徑開銷被稱為RPC(Root Path Cost,根路徑開銷),並生成無環樹狀網絡。根橋的根路徑開銷是0。

對端橋PID:運行STP交換機的每個端口都有一個端口ID端口ID由端口優先級和端口號構成端口優先級取值范圍是0到240,步長為16,即取值必須為16的整數倍。越小越優先缺省情況下,端口優先級是128。端口ID(Port ID)可以用來確定端口角色

對端橋BID每個非根橋都要選舉一個根端口。根端口是距離根橋最近的端口,這個最近的衡量標准是靠路徑開銷來判定的,即路徑開銷最小的端口就是根端口。端口收到一個BPDU報文后,抽取該BPDU報文中根路徑開銷字段的值,加上該端口本身的端口開銷即為本端口路徑開銷。如果有兩個或兩個以上的端口計算得到的累計路徑開銷相同,那么選擇收到發送者BID最小的那個端口作為根端口。

本機PID如果兩個或兩個以上的端口連接到同一台交換機上,則選擇發送者PID最小的那個端口作為根端口。如果兩個或兩個以上的端口通過Hub連接到同一台交換機的同一個接口上,則選擇本交換機的這些端口中的PID最小的作為根端口。

2.5 指定端口選舉(用於轉發BPDU報文的端口選舉

非根交換機在選舉指定端口時分別依據根路徑開銷、本機BID、PID。未被選舉為根端口或指定端口的端口為預備端口,將會被阻塞。

在網段上抑制其他端口(無論是自己的還是其他設備的)發送BPDU報文的端口就是該網段的指定端口。每個網段都應該有一個指定端口,根橋的所有端口都是指定端口(除非根橋在物理上存在環路)。

指定端口的選舉也是首先比較累計路徑開銷,累計路徑開銷最小的端口就是指定端口。——》如果累計路徑開銷相同,則比較端口所在交換機的橋ID,所在橋ID最小的端口被選舉為指定端口。——》如果通過累計路徑開銷和所在橋ID選舉不出來,則比較端口ID,端口ID最小的被選舉為指定端口

網絡收斂后,只有指定端口根端口可以轉發數據。其他端口為預備端口,被阻塞,不能轉發數據,只能夠從所連網段的指定交換機接收到BPDU報文,並以此來監視鏈路的狀態。

2.6 端口狀態轉換

運行STP協議的設備上端口狀態有5種:https://www.cnblogs.com/lkztrovo-lsh/p/15292158.html

2.7 BPDU報文

BPDU報文詳解:https://www.cnblogs.com/lkztrovo-lsh/p/15249806.html

2.8 STP拓撲變化

STP的拓撲變化:https://www.cnblogs.com/lkztrovo-lsh/p/15292599.html

2.9 設備上的配置

1.STP配置交換機的生成樹協議模式的命令:stp mode { mstp | stp | rstp }。缺省情況下,在MSTP模式。在使用STP前,STP模式必須重新配置。

2.STP配置設備優先級值命令:stp priority priority值。priority值為整數,取值范圍為0到61440,步長為4096。缺省情況下,交換設備的優先級取值是32768。

可以通過stp root primary命令指定生成樹里的根橋,確定網絡中的數據流量使用最優路徑轉發。

3.配置指定交換機上路徑開銷值標准de命令:stp pathcost-standard { dot1d-1998 | dot1t | legacy }

  •   dot1d-1998        IEEE 802.1D-1998
  •   dot1t                  IEEE 802.1T
  •   legacy                 Legacy

手動設置端口路徑開銷值的命令:stp cost cost值  缺省情況下,路徑開銷標准為IEEE 802.1t。

  • 使用華為的私有計算方法時,cost取值范圍是1~200000。
  • 使用IEEE 802.1d標准方法時,cost取值范圍是1~65535。
  • 使用IEEE 802.1t標准方法時,cost取值范圍是1~200000000。

4.檢查當前交換機的STP配置的命令:display stp

命令輸出中信息介紹如下:

  • CIST Bridge參數標識指定交換機當前橋ID,包含交換機的優先級和MAC地址。
  • Bridge Times參數標識Hello定時器、Forward Delay定時器、Max Age定時器的值。
  • CIST Root/ERPC參數標識根橋ID以及此交換機到根橋的根路徑開銷

5.顯示交換機上指定端口信息的命令:display stp interface 接口(g0/0/1)

 


免責聲明!

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



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