生成樹協議(STP,Spanning Tree Protocol,IEEE 802.1D)是二層網絡的防環路機制:當交換機之間存在多條路徑時,STP 自動把多餘路徑暫時封鎖,令整個網絡形成一棵沒有環路的「樹」,主路徑故障時再自動啟用後備路徑。本頁講解環路為何足以令全網癱瘓、STP 的選舉與封鎖原理、RSTP 的改進,以及工程實務上的設定要點。
先理解問題:二層環路為何足以令全網癱瘓
交換機收到廣播幀(例如 ARP 查詢、DHCP 請求)時,會向除了入口以外的所有埠轉發。假如兩部交換機之間不小心接了兩條線、或有人把牆身兩個網絡插座用一條線接通,網絡便出現物理環路。以太網幀沒有存活時間欄位,廣播幀會沿環路不斷循環,而且每經一圈都被再次向所有埠複製,流量以幾何級數膨脹,在數秒之內佔滿全部頻寬——這就是廣播風暴(broadcast storm)。同時,同一個 MAC 地址會不斷在不同埠之間出現,令交換機的 MAC 地址表反覆震盪,單播流量也一併癱瘓。
二層網絡的廣播幀會被交換機向所有埠轉發,而以太網幀本身沒有類似 IP 封包的存活時間欄位。當網絡存在環路時,一個廣播幀會沿環路無止境地循環複製,數量以幾何級數增長,於瞬間佔滿所有鏈路頻寬與交換機處理能力,這就是廣播風暴。徵狀是全網突然極度緩慢或完全癱瘓、交換機所有埠指示燈瘋狂閃爍,拔走成環的那條線後即時回復正常。
根橋是生成樹拓撲的中心,所有路徑計算都以它為基準。選舉按橋 ID 比較,優先值相同時由 MAC 地址較小者當選——若全部交換機使用出廠預設優先值,根橋位置實際上由 MAC 地址決定,可能落在網絡邊緣一部低階交換機上,造成流量繞路。專業做法是人手把核心交換機的優先值調低(例如 4096),確保根橋落在網絡核心,並把次核心設為後備根橋。