發布時間: 2017-10-13 23:45:40
為了增加局域網的冗余性,我們常常會在網絡中引入冗余鏈路,然而這樣卻會引起交換
環路。交換環路會帶來三個問題:廣播風暴、同一幀的多個拷貝、交換機CAM 表不穩定。
STP(STP,Spanning Tree Protocol)可以解決這些問題,STP 基本思路是阻斷一些交換機接
口,構建一棵沒有環路的轉發樹。STP 利用BPDU(Bridge Protocol Data Unit)和其他交換
機進行通信,從而確定哪個交換機該阻斷哪個接口。在BPDU 中有幾個關鍵的字段,例如:
根橋ID、路徑代價、端口ID 等。
為了在網絡中形成一個沒有環路的拓撲,網絡中的交換機要進行以下三個步驟:(1)選
舉根橋、(2)選取根口、(3)選取指定口。這些步驟中,哪個交換機能獲勝將取決于以下因
素(按順序進行):
(1) 最低的根橋ID;
(2) 最低的根路徑代價;
(3) 最低發送者橋ID;
(4) 最低發送者端口ID。
每個交換機都具有一個唯一的橋ID,這個ID 由兩部分組成:網橋優先級+MAC 地址。網
橋優先級是一個2 個字節的數,交換機的默認優先級為32768;MAC 地址就是交換機的MAC
地址。具有最低橋ID 的交換機就是根橋。根橋上的接口都是指定口,會轉發數據包。
選舉了根橋后,其他的交換機就成為非根橋了。每臺非根橋要選舉一條到根橋的根路徑。
STP 使用路徑Cost 來決定到達根橋的最佳路徑(Cost 是累加的,帶寬大的鏈路Cost 低),
最低Cost 值的路徑就是根路徑,該接口就是根口;如果Cost 職一樣,就根據選舉順序選舉
根口。根口是轉發數據包的。
交換機的其他接口還要決定是指定口還是阻斷口,交換機之間將進一步根據上面的四個
因素來競爭。指定口是轉發數據幀的。剩下的其它的接口將被阻斷,不轉發數據包。這樣網
絡就構建出一棵沒有環路的轉發樹。
當網絡的拓撲發生變化時,網絡會從一個狀態向另一個狀態過渡,重新打開或阻斷某些
接口。交換機的端口要經過幾種狀態: 禁用(Disable)、阻塞(Blocking)、監聽狀態
(Listening)、學習狀態(Learning)、最后是轉發狀態(Forwarding)。
那么接下來講具體的選舉過程:
最開始選舉根交換機也就是根橋,根橋的選舉根據橋ID,橋ID小的優先。
接著在每一臺非根交換機上選舉根端口:
1.對比該端口的根路徑開銷
2.對端BID
3.對端PID
4.本端PID
選舉完后就在每一條鏈路上選舉一個指定端口順序如下:
1.根路徑開銷
2.BID
3.PID
然后阻塞非根非指定端口,成為備用端口。