一、核心概念 (Concept)
一句話定義
ESRP (Extreme Standby Router Protocol) 是 Extreme 獨家的備援協定,它像是一位「雙面特務」,既可以在 Layer 2 層級阻斷迴圈 (Loop) 來取代 STP,也可以在 Layer 3 層級提供虛擬閘道器 (Virtual Gateway) 來取代 VRRP。
生活化比喻
想像一家公司「總經理」(Master) 與「副總經理」(Slave):
L2 模式 (Loop Protection):為了避免命令打架 (Loop),平時只有總經理能發號施令,副總經理把耳朵摀起來 (Port Blocked),不聽也不傳任何公文。
Host Mode (MLAG 應用):這是「代理授權模式」。副總經理 (Slave) 雖然頭銜還是副的,但被授權可以處理員工的公文 (收送封包),只有在遇到總經理也在處理同一件事時,才會退讓。
二、L2 與 L3 ESRP 架構深度解析
L2 ESRP:Loop Protection
在純 L2 環境中,ESRP 的作用與 STP (Spanning Tree) 完全相同,目的是防止廣播風暴與迴圈。
- 運作機制:Master Switch 的埠口全開;Slave Switch 會將受 ESRP 保護的 VLAN 埠口設為 Blocked 狀態。
- 取代 STP 的優勢:
- 收斂速度極快 (Hello timer 可設為 sub-second)。
- 不需要全網計算 Tree,僅針對特定 VLAN 或 ESRP Domain。
- ESRP PDU (Hello) 透過 UDP 2056 傳送,包含 Master ID 與 Priority。
- 狀態行為:Slave 在此模式下,丟棄所有數據封包,只接收 ESRP Hello。
架構圖:L2 Loop Protection
(ESRP Master)"] L2_B["Core Switch B
(ESRP Slave)"] L2_Edge["Edge Switch"] L2_A -- "ESRP Hello (Active)" --- L2_B L2_Edge -- "Link UP (Forwarding)" --- L2_A L2_Edge -. "Link BLOCKED
(Loop Prevention)" .- L2_B style L2_A fill:#d1fae5,stroke:#059669,stroke-width:2px style L2_B fill:#fee2e2,stroke:#b91c1c,stroke-width:2px style L2_Edge fill:#f3f4f6,stroke:#333,stroke-width:2px
L3 ESRP:Gateway Redundancy
在 L3 環境中,ESRP 的作用類似 VRRP,提供預設閘道 (Default Gateway) 的高可用性。此架構展示標準的 Access-Core 設計。
- 架構調整:Client 透過 L2 Access Switch 上行連接至兩台 Core Switch,符合真實企業網路拓撲。
- 虛擬 IP/MAC (單一 IP 架構):
- ESRP 特性:兩台 Switch 的介面 IP 設定完全相同,且同時作為 VIP。例如 Master 設定 192.168.1.1,Slave 也設定 192.168.1.1。
- 與 VRRP 差異:VRRP 標準作法通常需要 3 個 IP (Master 介面 .2, Backup 介面 .3, 虛擬 VIP .1);而 ESRP 兩台設備共用同一個 IP,不僅節省 IP 資源,設定也更為直觀。
- 運作機制:
- Master:回應 ARP Request,負責將流量 Routing 至上層 Internet。
- Slave:介面 IP 雖然存在但保持靜默 (不回應 ARP),不處理 Routing。
- 進階功能:ESRP 可以同時連動 L2 狀態 (如 Link down 自動切換) 與 L3 路由追蹤 (Route tracking)。
架構圖:L3 Gateway Redundancy
IP: 192.168.1.1
(Master)"] L3_CoreB["Switch B
IP: 192.168.1.1
(Slave)"] %% Access Layer L3_L2Sw["L2 Access Switch"] L3_Client["PC / Server
GW: 192.168.1.1"] %% Connections - North (Upstream) L3_CoreA -- "Active Routing" --> L3_Internet L3_CoreB -. "Standby Routing" .-> L3_Internet %% ESRP Link L3_CoreA <== "ESRP Sync" ==> L3_CoreB %% Connections - South (Downstream) L3_CoreA -- "Active Path" --- L3_L2Sw L3_CoreB -. "Standby Path" .- L3_L2Sw %% Access L3_L2Sw --- L3_Client %% Styling style L3_CoreA fill:#d1fae5,stroke:#059669 style L3_CoreB fill:#fee2e2,stroke:#b91c1c style L3_Internet fill:#fef3c7,stroke:#d97706 style L3_L2Sw fill:#e0f2fe,stroke:#0284c7
關鍵技術:ESRP Host Mode (ESRP Slave Active Forwarding)
這是 Extreme MLAG 架構中最容易被誤解,但也最重要的觀念。
傳統 Slave vs. Host Mode Slave
| 比較項目 | 傳統 ESRP Slave | Host Mode Slave |
|---|---|---|
| 埠口狀態 | Blocked (阻塞) | Forwarding (轉發) |
| 封包收送 | 丟棄所有 Data 封包 | 正常接收與傳送 |
| 應用場景 | 單純 L2 環路保護 | MLAG (Active-Active) |
為什麼 MLAG 需要 Host Mode?
在 MLAG 架構下,Server 透過 LACP 連接到兩台 Switch。如果 Slave 處於傳統模式並 Block 埠口,那 Server 的一半頻寬就斷了!
關鍵指令 (Correct CLI):
configure esrp <esrp-name> ports <port_list> mode host
使用此指令將 ISC Link 和 Downlink Port 設為 Host Mode,確保在 Slave 狀態下仍能轉發封包。
架構圖:MLAG + ESRP Host Mode
(ESRP Master)
MLAG Primary"] Host_CoreB["Switch B
(ESRP Slave)
MLAG Secondary"] Host_Server["Server / Host"] Host_CoreA <== "ISC Link
(Host Mode Configured)" ==> Host_CoreB Host_Server -- "LACP Active Link" --> Host_CoreA Host_Server -- "LACP Active Link
(Host Mode Configured)" --> Host_CoreB subgraph "MLAG Domain" Host_CoreA Host_CoreB end style Host_CoreA fill:#d1fae5,stroke:#059669 style Host_CoreB fill:#e0f2fe,stroke:#0284c7,stroke-dasharray: 5 5 style Host_Server fill:#f3f4f6,stroke:#333
注意:Host Mode 必須設定在 ISC 與 Downlink Port 上,Slave 才會保持這些連線暢通!
四、實務應用場景 (Use Case)
案例:資料中心高可用性架構 (Extreme MLAG)
某大型醫院的核心網路,要求伺服器連線不能中斷,且頻寬需最大化。
解決方案配置
- 使用兩台 Extreme Switch 組成 MLAG Pair。
- 設定 ESRP 進行 Gateway 備援 (VIP)。
- 關鍵設定 (Host Mode):必須在以下兩處 Port 上啟用正確指令:
configure esrp "v1" ports <port_list> mode host
- 1. 兩台 Switch 對接的 ISC Port
- 2. 兩台 Switch 下行到 Server/Switch 的 Port
優點分析
- 頻寬翻倍:Server 的兩條線路同時運作 (Active-Active)。
- 無縫切換:若 Master 當機,Slave 已經在轉發封包,且瞬間接手 VIP,使用者無感。
- 結構簡單:完全不需要 STP 計算,卻擁有無 Loop 的環境。
五、隨堂測驗 (Quiz)
請測試你對 ESRP 與 Host Mode 的理解。
1. ESRP 的主要功能可以取代哪些標準協定?
2. 在標準的 L2 ESRP 模式下 (非 Host Mode),Slave 設備的狀態為何?
3. 為什麼在 MLAG 架構下,ESRP 必須開啟 "Host Mode"?
4. ESRP 使用哪種封包進行 Master/Slave 溝通?
5. 關於 L3 ESRP 的 Gateway 備援,下列敘述何者正確?