一、核心概念 (Concept)
一句話定義
當路由器發現前往同一個目的地有多條路徑,且這些路徑的成本 (Cost/Metric) 完全相同時,同時利用這些路徑來轉送封包,以達到負載平衡與備援的效果。
生活化比喻:高速公路收費站
想像你要從台北開車到高雄(封包傳輸)。如果在某個收費站(路由器)後方,有 4 個開放的閘道(Links) 都可以通往同一個出口。
ECMP 就像是聰明的交管人員,不會讓所有車都擠在第 1 車道,而是根據車牌號碼(Header Hash),平均將車輛引導到這 4 個閘道,讓整體車流更順暢。
二、運作原理 (Mechanism)
1. 技術細節:Hash Algorithm (雜湊演算法)
很多人誤以為 ECMP 是「輪流發送 (Round-Robin)」,即第1個封包走 A 路徑,第2個走 B 路徑。這是錯誤的觀念! 在現代高速網路 (包含 ExtremeXOS) 中,為了避免封包順序錯亂 (Out-of-Order),通常採用 Flow-based Load Balancing。
- 5-Tuple Hashing: 路由器會讀取封包的 5 個特徵值 (來源 IP, 目的 IP, 來源 Port, 目的 Port, 協定)。
- 計算結果: 將這些值丟入演算法計算,得出一個 Hash Key。
- 路徑選擇: 相同的 Hash Key 永遠走同一條路徑;不同的連線 (Flow) 才會被分配到不同路徑。
2. 關鍵參數與 ExtremeXOS 設定
通用標準:
- Cost/Metric: 必須完全一致 (例如 OSPF Cost 都是 10)。
- Maximum Paths: 大多數設備預設支援 4-8 條路徑,現代 Data Center 交換機可支援 64+。
ExtremeXOS 視角:
- 指令:
enable iproute sharing - 演算法: 預設多為 address-based (L3+L4),可確保同一 Session 走同一條路。
3. 實戰驗證:如何確認路由同時 Active?
在 ExtremeXOS 輸入 show iproute <目的地>,若 ECMP 生效,您會看到多行相同的 Destination,但指向不同的 Gateway,且 Metric (Mtr) 必須相同。
Ori Destination Gateway Mtr Flags VLAN Duration #s 192.168.100.0/24 10.1.1.2 10 UG---S-um--f Uplink_1 0d:4h:20m #s 192.168.100.0/24 10.1.2.2 10 UG---S-um--f Uplink_2 0d:4h:20m #s 192.168.100.0/24 10.1.3.2 10 UG---S-um--f Uplink_3 0d:4h:20m
三、架構視覺化 (Visuals)
圖表 A: ECMP 拓撲示意圖
圖說:核心交換機透過 Hashing 將流量分散至三條實體路徑
圖表 B: Hashing 決策流程 (Sequence Diagram)
第 2 條路徑 CPU->>Egress: 6. 從 Port 2 送出
四、實務應用場景 (Use Case)
案例:企業資料中心 Spine-Leaf 架構
在現代化資料中心,我們不再使用傳統的 STP (Spanning Tree) 來阻擋備援路徑。相反地,我們在 Leaf Switch (存取層) 與 Spine Switch (骨幹層) 之間建立 Full Mesh 連線,並開啟 Layer 3 ECMP。
Leaf Switch 設定指向所有 Spine Switch 的 Default Route (0.0.0.0/0),由於 Metric 相同,流量會自動分散到所有 Uplink,頻寬利用率從 50% (STP Active/Standby) 提升至 100%。
優點 (Pros)
- 頻寬聚合: 將多條 10G 線路合併使用,無需購買昂貴的 40G/100G 介面。
- 高可用性: 若其中一條路徑斷線,Hashing 會自動重新計算,將流量導向剩餘路徑,使用者幾乎無感。
- 配置簡單: 相較於複雜的 MPLS TE,ECMP 只要路由 Metric 一樣即可生效。
缺點/限制 (Cons)
- Hash 碰撞 (Polarization): 若演算法不佳,可能導致流量分配不均(例如所有大流量剛好都被 Hash 到同一條路)。
- 除錯困難: 使用
traceroute時,可能每次看到的路徑都不同,難以定位掉包發生在哪一條線路。
五、隨堂測驗 (Quiz)
身為未來的架構師,請測試看看你是否掌握了 ECMP 的精隨。