一文帶你了解生成樹協議STP
STP,全稱Spanning Tree Protocol,它是開放系統互聯OSI模型中第二層“數據鏈路層”最主要的協議之一。
圖片
生成樹協議誕生的背景
在以太網交換網絡中,為了提高網絡可靠性,通常會使用冗余鏈路。但使用冗余鏈路在交換網絡中會產生環路,導致廣播風暴、MAC地址表不穩定等故障現象,從而影響用戶通信質量。STP 協議的作用就是通過阻塞冗余鏈路的端口,在交換網絡中防止環路的產生。
生成樹協議發展歷程
STP協議最初由IEEE在1989年發布的IEEE 802.1D標準中定義。STP協議的缺點是收斂時間長,因此 IEEE 在2004年發布了IEEE 802.1w 標準,定義了快速生成樹協議 (Rapid Spanning Tree Protocol)。RSTP 協議的收斂時間比STP協議快得多,但仍然存在一些缺點。
為了解決STP和RSTP的缺點,在IEEE 802.1s的標準中再次定義了多生成樹協議 (Multiple Spanning Tree Protocol)。MSTP協議可以為不同VLAN創建不同的生成樹,從而提高網絡的性能和可靠性。
STP、PVST、PVST+、RSTP 和 MSTP 之間的關系如下:
- STP 是生成樹協議的基礎,PVST、PVST+、RSTP 和 MSTP 都是基于 STP 協議的改進。
- PVST 和 PVST+ 是 Cisco 公司對 STP 協議的改進,可以為不同的 VLAN 創建不同的生成樹。
- RSTP 是 STP 協議的改進,收斂時間更短。
- MSTP 是 STP 協議的改進,可以為不同 VLAN 創建不同的生成樹,并且具有更好的性能和可靠性。
具體來說,STP 協議是單生成樹協議 (Single Spanning Tree),它為整個網絡創建一個生成樹。STP 協議的缺點是收斂時間長,因此 Cisco 公司開發了 PVST 和 PVST+ 協議。PVST 和 PVST+ 協議都是基于 STP 協議的,但它們可以為不同的 VLAN 創建不同的生成樹。這可以提高網絡的性能和可靠性,但也增加了網絡管理的復雜性。
RSTP 協議是快速生成樹協議 (Rapid Spanning Tree),它可以縮短STP協議的收斂時間。RSTP協議的缺點是仍然是單生成樹協議,它不能完全解決STP協議的缺點。
MSTP 協議是多生成樹協議 (Multiple Spanning Tree),它可以為不同 VLAN 創建不同的生成樹。因此,MSTP 協議是目前最先進的生成樹協議。
生成樹協議的原理
STP執行一種被稱為STA(Spanning-Tree Algorithm,生成樹算法)的算法,通過判斷網絡中存在環路的地方并阻斷冗余鏈路。為了找到冗余鏈路, STA在網絡中選擇一個參考點,然后確定到該參考點的冗余路徑,這個參考點通常被稱為生成樹的根。如果STA發現存在冗余路徑,那么它將選擇到達根的最優路徑(通常是開銷最小的路徑),同時阻斷所有其他冗余路徑。如果最優路徑發生故障,那么之前被阻塞的端口將被激活,生成新的最優路徑并參與數據的轉發。為了進一步說明生成樹是怎樣建立無環路徑的,我們先熟悉一些STP名詞:
根橋:生成樹的“樹根”,橋id最小的交換機。
非根交換機:除了根橋,其它的都是非根交換機。
根端口:離根橋最近的端口。每一個非根交換機都有一個根端口。
指定端口:除了根端口,所有參與數據轉發的端口都是指定端口。根橋上所有的端口都是指定端口。
非根非指定端口:被阻塞的端口,也是我們理解的冗余鏈路的端口。
路徑開銷:到達根橋的過程中端口cost值的累計。端口cost值越小,路徑開銷越小,對應的路徑就更優。
橋ID:是由橋優先級和橋MAC地址構成。
端口ID:是由端口優先級和端口號構成。
STP的選舉過程
一、選舉1個根網橋
每個VLAN中只能有1個網橋擔當根網橋。在根網橋上,所有的端口都擔當指定端口。指定端口不僅能夠發送和接收流量,還可以發送和接收配置消息或BPDU。根網橋是所有交換機用來確定網絡中是否存在環路的參考點。通過交換BPDU,交換機就知道誰的橋ID最小,誰就是根橋。
二、選擇所有非根網橋的根端口
根端口能夠發送和接收流量。如果非根網橋擁有到達根網橋的多條等價路徑,那么非根網橋將選擇連接到最低網橋ID的端口。如果等價路徑的所有網橋ID都是相同的,那么非根網橋將選擇具有最低端口ID(端口ID是局部有效的配置)的端口。
三、選擇各個網段的指定端口
在各個網段中,STP在網橋上建立一個指定端口,它到達根網橋的路徑開銷最低。如果出現路徑開銷相等的情況,那么橋ID就派上用場了。如果相同網橋上多個端口的開銷也相同,那么具有最低優先級的端口將被選為指定端口。如果端口優先級也相同,那么哪個端口的號最小就是誰。記住:生成樹協議中都是選最低(最?。┑模还苁荌D、優先級還是端口號。非根非指定端口只能夠接收流量,但不能參與轉發,就是為了避免環路。
STP 協議會不斷地監控網絡拓撲,并根據需要調整邏輯樹。如果網絡拓撲發生變化,STP 可能會將某些鏈路從活動狀態更改為阻塞狀態,或者將某些鏈路從阻塞狀態更改為活動狀態。
日常配置STP的注意事項
為了能夠在分布層和接入層的交換機之間轉發流量,我們通常選擇位于中心位置的交換機或核心交換機作為主根網橋,這些交換機具有充足的CPU資源和交換能力。在主根網橋或當前根網橋發生故障的時候,將選擇備份或輔助根網橋。這種選擇過程應當提前規劃好,確保:即使主根網橋發生故障,新的根網橋仍然位于中心位置,并且具有接管主交換機角色的足夠CPU資源和交換能力。在生產網絡中,一般要求備份根網橋和主交換機具有相同的能力。如果滿足上述要求,即使主根網橋發生故障,網絡性能也不會受到太大的影響。