STP、RSTP 和 MSTP 的區別,一次性說清楚
交換機網絡中,防止環路是至關重要的。生成樹協議(STP)、快速生成樹協議(RSTP)、以及多生成樹協議(MSTP)是我們最常見的環路防護機制。那么就跟著神唱來了解一下他們的區別是什么吧。
一、STP:生成樹協議
STP 的基本概念: STP (Spanning Tree Protocol)是 IEEE 802.1D 定義的一種避免環路的協議。它的核心思想是通過阻塞部分冗余鏈路,使網絡形成一個無環路的樹形結構。
工作原理:
- 根橋選舉: 通過比較橋 ID(Bridge ID),選擇一個根橋(Root Bridge)。
- 路徑成本計算: 非根橋通過計算到達根橋的最短路徑來確定自己的根端口(Root Port)。指定端口選舉: 每個非根橋的指定端口(Designated Port)負責向下轉發數據。
- 阻塞端口: 非指定端口進入阻塞狀態,防止環路。
五種端口狀態:
- Disabled(禁用): 端口被關閉。
- Blocking(阻塞): 阻止數據流通,只接收 BPDU。
- Listening(監聽): 監聽 BPDU,但不學習 MAC 地址。
- Learning(學習): 學習 MAC 地址,但不轉發數據。
- Forwarding(轉發): 正常轉發數據。
缺點:
- 收斂速度慢(30-50 秒)。
- 只支持單一 VLAN 的生成樹,無法實現多 VLAN 優化。
二、RSTP:快速生成樹協議
基本概念 :RSTP(Rapid Spanning Tree Protocol) 由 IEEE 802.1w 定義,是對 STP 的增強版。RSTP 通過優化端口狀態轉換,提高了網絡的收斂速度,通常可以在 1-2 秒內完成收斂。
主要特點:
- 引入替代端口(Alternate Port): 作為備選路徑,在根端口失效時迅速接替。
- 引入備份端口(Backup Port): 提供冗余連接,防止鏈路失效。
- 直接進入 Forwarding 狀態: 端口可以直接進入 Forwarding 狀態,無需經過 Listening 和 Learning 階段。
端口角色:
- Root Port(根端口): 到達根橋的最優路徑端口。
- Designated Port(指定端口): 為下游設備提供轉發服務的端口。
- Alternate Port(替代端口): 備選路徑,替代根端口。
- Backup Port(備份端口): 備份指定端口,提供冗余。
優點:
- 收斂速度快(通常在 1 秒內完成)。
- 端口可以直接進入 Forwarding 狀態,優化數據轉發路徑。
三、MSTP:多生成樹協議
MSTP 的基本概念: MSTP(Multiple Spanning Tree Protocol) 由 IEEE 802.1s 定義,可以將不同的 VLAN 綁定到不同的生成樹實例中,實現多 VLAN 的負載均衡和環路防護。
MSTP 的關鍵特性:
- MST 區域: 多個交換機構成一個 MST 區域,共享相同的 MST 配置。
- 實例映射: 將不同 VLAN 映射到不同 MST 實例(MSTI)。
- 多實例負載均衡: 通過不同 MST 實例實現流量分擔,提高帶寬利用率。
MSTP 的三種生成樹:
- CIST(Common and Internal Spanning Tree): 負責管理 MST 區域間的生成樹。
- MSTI(Multiple Spanning Tree Instances): 每個實例維護各自的生成樹。
- IST(Internal Spanning Tree): MST 區域內部的默認生成樹實例。
優點:
- 允許 VLAN 進行流量分擔,優化帶寬。
- 提供跨區域的生成樹管理。
四、STP、RSTP 和 MSTP 的核心區別
特性 | STP | RSTP | MSTP |
標準 | IEEE 802.1D | IEEE 802.1w | IEEE 802.1s |
收斂速度 | 30-50 秒 | 1-2 秒 | 1-2 秒 |
端口狀態 | 5 種 | 3 種 | 3 種 |
VLAN 支持 | 單實例 | 單實例 | 多實例 |
負載均衡 | 不支持 | 不支持 | 支持 |
備份路徑 | 不支持 | 支持 | 支持 |
適用場景 | 小型網絡 | 中型網絡 | 大型、多 VLAN 網絡 |
五、常見配置示例
以ensp為例:
- STP 配置:
# 啟用 STP
[Switch] stp enable
- RSTP 配置:
# 啟用 RSTP
[Switch] stp mode rstp
- MSTP 配置:
# 啟用 MSTP
[Switch] stp mode mstp
[Switch] stp region-configuration
[Switch-mst-region] region-name Network
[Switch-mst-region] revision-level 1
[Switch-mst-region] instance 1 vlan 10 20
[Switch-mst-region] active region-configuration