一、核心概念 (Core Concept)
一句話定義
Spanning Tree 是一種二層 (Layer 2) 網路協定,透過邏輯性地「阻塞」備援路徑,將一個含有環路 (Loop) 的實體網路修剪成一個無環路的樹狀邏輯結構,以防止廣播風暴 (Broadcast Storm)。
生活化比喻:公司指揮鏈
想像這是一間大公司。為了避免命令混亂(封包無限迴圈),我們必須選出一位 **CEO (Root Bridge)**。
所有的決策(資料流)雖然有很多傳遞路徑(冗餘線路),但為了效率,我們規定每位經理只能聽從一位直屬上司的指令。那些「備用」的溝通管道(備援線路)平時必須保持安靜(Blocking),只有當直屬上司請假或離職(線路中斷)時,備用管道才會啟用。
二、運作原理 (Mechanism)
1. 角色口訣:RP 找媽媽,DP 顧小孩
Root Port (RP): 每個非 Root 交換機只有一個。這是「通往 Root Bridge 最短路徑」的 Port。就像孩子要找媽媽(Root),只能選一條最近的路。
Designated Port (DP): 每個網段(網線)只有一個。這是負責將來自 Root 的資料「往下傳送」給該網段的 Port。因為 Root Bridge 是源頭,所以 Root Bridge 上的所有 Port 天生就是 DP(離自己最近)。
Blocking Port (BLK): 選輸的 Port。當一個網段兩端的交換機在爭奪誰當 DP 時,條件較差的那一方就會閉嘴(Block),避免迴圈。
2. 封包與控制層面 (BPDU)
- BPDU (Bridge Protocol Data Unit): 交換機之間的「心跳聲」。每 2 秒發送一次 Hello BPDU。
- Root Bridge 選舉: 比小不比大。先比 Priority (預設 32768),若相同則比 MAC Address。數值越小者當選 Root。
- 路徑成本 (Path Cost): 頻寬越大,過路費(Cost)越低。例如 10Gbps 的 Cost 小於 1Gbps。
3. 802.1d vs 802.1w 關鍵差異
| 特性 | 802.1d (Legacy STP) | 802.1w (RSTP) |
|---|---|---|
| 連接埠狀態 | Blocking, Listening, Learning, Forwarding, Disabled | Discarding, Learning, Forwarding |
| 收斂速度 | 慢 (30 ~ 50 秒) | 快 (小於 1 秒, 視拓撲而定) |
| 收斂機制 | 依賴計時器 (Max Age, Forward Delay) | Proposal / Agreement (主動握手) |
| ExtremeXOS 備註 | 在 ExtremeXOS 中,我們使用 STPD (Spanning Tree Domain) 來管理。您可以建立多個 STPD 並將 VLAN 對應進去 (類似 MSTP 概念),以實現負載平衡。 | |
三、架構視覺化 (Visuals)
STP 角色選舉拓撲 (Topology)
Priority: 4096
MAC: 00:04:96:AA:AA:AA] SW_A[Switch A
Priority: 32768
MAC: 00:04:96:BB:BB:BB] SW_B[Switch B
Priority: 32768
MAC: 00:04:96:CC:CC:CC] Root -- DP (Root 端永遠是 DP) --- SW_A Root -- DP (Root 端永遠是 DP) --- SW_B SW_A -- DP (贏家) --- LinkAB((互連網段)) LinkAB -. BLK (輸家) .- SW_B linkStyle 0 stroke:#10b981,stroke-width:3px; linkStyle 1 stroke:#10b981,stroke-width:3px; linkStyle 2 stroke:#10b981,stroke-width:3px; linkStyle 3 stroke:#ef4444,stroke-width:3px,stroke-dasharray: 5 5;
為什麼 Switch B 會變成 Blocking?(PK 解析)
在 Switch A 與 Switch B 相連的這個網段上,必須選出一個負責傳送資料的 指定埠 (Designated Port, DP)。誰「離 Root 比較近」或「條件比較好」,誰就當 DP,輸的人就 Block。
- 第一關 - 比 Root Path Cost (到 Root 的距離):
假設 A 和 B 直接連到 Root 的線路速度一樣 (Cost 相同)。 -> 平手 - 第二關 - 比 Bridge ID (Priority + MAC):
因為 Priority 都是預設 32768,所以比 MAC Address。- Switch A MAC: 00:04:96:BB:BB:BB (Extreme OUI)
- Switch B MAC: 00:04:96:CC:CC:CC (Extreme OUI)
- 結果揭曉:
MAC 位址後段的 BB:BB:BB 小於 CC:CC:CC,所以 Switch A 條件比較好 (視為邏輯上離 Root 較近)。 - 最終判決:
Switch A 的 Port 成為 DP (負責轉發)。
Switch B 的 Port 選輸了,變成 Blocking (閉嘴待命)。
RSTP 快速收斂機制 (P/A Handshake)
立即阻塞其他 Port (Sync) SW_A->>Root: 回覆 Agreement BPDU (好的,同意!) Note over Root, SW_A: 鏈路立即轉為 Forwarding (無需等待 30秒)
圖說:RSTP 透過主動的 Proposal/Agreement 握手機制,確認雙方對 Link 的認知一致後,即可立即進入 Forwarding,跳過了傳統 STP 漫長的 Listening 與 Learning 計時器。
四、實務應用場景 (Use Case)
場景:企業園區核心網路備援
某製造業廠區,為了確保產線不中斷,將 **存取層交換機 (Access Switch)** 透過兩條光纖分別上連至 **兩台核心交換機 (Core A & Core B)**。
- 部署方式: 啟用 RSTP (802.1w)。Core A 設定 Priority 4096 (Root),Core B 設定 Priority 8192 (Secondary Root)。Access Switch 維持預設 32768。
- 正常運作: Access Switch 到 Core A 的線路 Forwarding,到 Core B 的線路 Blocking。
- 故障發生: 當 Core A 當機或光纖被挖斷,Access Switch 偵測到 BPDU 遺失,立即將通往 Core B 的線路轉為 Forwarding。
- 防止單點故障 (Single Point of Failure, SPOF),提高網路可用性。
- 配置簡單,是所有企業級交換機 (包含 ExtremeXOS) 的標準功能。
- RSTP 提供了秒級 (Sub-second) 的復原能力,遠優於傳統 STP。
- 頻寬利用率低:為了防止環路,備援路徑必須處於 Blocking 狀態,無法同時傳輸流量 (Active-Standby)。
- 技術演進:現代架構趨勢已轉向使用 MC-LAG (MLAG) 或 Extreme EAPS 環網技術,以實現雙活 (Active-Active) 轉發並消除 STP 的阻塞。
五、隨堂測驗 (Quiz)
Q1. 在 STP Root Bridge 的選舉過程中,判斷順序為何?
Q2. 下列哪一個狀態「不屬於」RSTP (802.1w),但存在於傳統 STP (802.1d) 中?
Q3. 在 ExtremeXOS 或一般交換機上配置 RSTP Edge Port (或稱 Portfast) 的主要目的是什麼?
Q4. 當一個 Port 處於 RSTP 的 "Discarding" 狀態時,它會做什麼事?
Q5. 在 ExtremeXOS 中,若要啟用 RSTP,通常會配置在哪個物件上?