
STP生成樹協議
作用:在二層網絡中有鏈路備份的情況下可能存在網絡環路,STP生成樹協議就是為了破除這個環路
工作原理:
(資料圖)
一、選擇根橋
交換機啟動時,每個交換機都認為自己是根橋,發送自己交換機設備的配置BPDU參數來選舉根橋,主要通過BID來確認根橋。
BID=優先級+MAC地址
先比較優先級,越小越優,在比較MAC地址,越小越優。
二、在非根橋上選舉根端口
確定了根交換機后,然后選舉根端口,根端口是非根交換機接收最好的配置BPDU的端口。根交換機確定后,非根橋在所有端口中選舉出一個最優的BPDU端口作為根端口。通過配置BPDU的四個參數來比較
Root ID 根橋的BID
RPC 到根交換機的距離
BID 發送配置BPDU的交換機的BID
PID 端口的優先級+端口編號
三、選舉指定端口
在非根交換機上確定了根端口后,通過根端口計算出指定端口的參數,然后用算出來的參數去比較設備本身的指定端口參數,如果計算出來的優,那么該端口為指定端口,如果設備本身的指定端口優,那么該端口為AP端口。
根交換機上的所有端口都是指定端口
四、確定端口狀態
disable 關閉狀態 端口物理層處于關閉或者shutdown,不處理任何數據。
blokning 阻塞狀態 端口啟用STP協議后進入到該狀態,該狀態下設備只接收處理配置BPDU,不發送任何數據,不學習MAC地址。
listning 監聽狀態 端口正在選舉端口角色,該狀態下設備接收處理配置BPDU,發送配置BPDU,不學習MAC地址,不轉發用戶數據。
learning 學習狀態 端口認為自己是根端口或者指定端口的時候,該狀態下,設備接收處理配置BPDU,發送配置BPDU,學習MAC地址,不轉發用戶數據。
forwarding 轉發狀態,該狀態是最終狀態, 接收處理配置BPDU,發送配置BPDU,學習MAC地址,轉發用戶數據。
在生成樹中,只有blokning狀態和forwarding狀態是最終狀態,代表最穩定。
五、當生成樹出現問題。
1、當RP端口失效,且有AP端口的情況下,AP成為新的根端口。經過30S的轉發延遲。
2、當RP端口失效,沒有AP端口的情況下,DP成為新的根端口。經歷50S的才能進入到轉發狀態。20S的端口配置BPDU的老化時間,30S的轉發延遲。
3、當根橋失效,會重新選舉根橋,需要50S才能恢復網絡。
當DP變為RP時,狀態從forwarding立即轉變為discarding,在經歷2個轉發延遲,才進入到forwarding,所以至少需要30S
當交換機的端口角色發生變化時,MAC地址表固定的300S老化時間,導致在這段時間內 ,部分主機無法通信。所以STP改進了這個機制。拓撲變更通知簡稱TC泛洪。
拓撲變化的條件
1、所有端口進入到Forwarding狀態,就會認為拓撲發生變化。
2、根端口失效或者恢復時,也會認為拓撲發生變化。
當拓撲發生變化時,MAC地址表如何老化?
1、當滿足以上2個條件時,交換機則認為拓撲發生變化,沿著根端口發送,TCN BPDU,通知上游設備,
2、上游設備收到拓撲變更通知(TCN)后,會立即回復TAC確認消息,告訴下游設備收到了,下游設備立即停止發送TCN。上游設備會繼續沿著根端口朝著根橋發送。
3、根橋收到會立即從所有的指定端口發送TC置位的BPDU。持續35S
4、非根交換機收到TC置為的BPDU后,將自己的MAC地址表項在15S內老化。
但是當主機連接到交換機時,交換機的端口forwarding了,會發生TCN拓撲變化通知,導致網絡產生震蕩。所以在STP,RSTP,MSTP的網絡中,連接三層設備的接口都必須配置邊緣端口。
邊緣端口的好處:
1、配置邊緣端口后,不發送TCN置位的BPDU,
2、配置邊緣端口后,收到TC置位的BPDU,不老化MAC地址表
3、配置邊緣端口后,端口從discarding狀態立即變為Forwarding狀態.