VRRP + MLAG 高可用性架構解析

解決 L2 迴圈與實現 Active-Active 路由的最佳實踐

講師前言:

在傳統的雙核心設計中,我們常遇到一個兩難:為了備援連接了兩條線,結果為了怕廣播風暴 (Loop),STP 協定把其中一條線給封鎖了,導致一半的頻寬被浪費。今天我們來探討如何利用 ExtremeXOS 的 MLAG 技術,結合 VRRP,不僅解決風暴問題,還能讓兩台核心交換器同時工作 (Active-Active)!

一、核心概念 (Concept)

VRRP (虛擬路由器備援協定)

一句話定義:多台路由器共用一個虛擬 IP (VIP),當主機掛掉時,備機自動接手,讓使用者無感。

生活化比喻:就像公司的總經理 (Master) 和副總經理 (Backup)。對外代表公司的電話號碼 (VIP) 只有一支,平時都由總經理接聽,只有總經理請病假時,副總經理才會接起這支電話。

MLAG (跨機箱鏈路聚合)

一句話定義:讓兩台實體交換器,在下層設備眼中「偽裝」成同一台交換器,實現頻寬加倍與無縫備援。

生活化比喻:就像兩條單線道的高速公路入口,合併成一個寬闊的收費站。駕駛 (封包) 根本不在乎走哪條車道,反正都能通往同一個目的地,而且兩條路可以同時通車,不會塞車。

二、運作原理與痛點解決 (Mechanism)

傳統架構的痛點:廣播風暴與資源浪費

  • 為何會形成迴圈? 兩台 Core 交換器為了確認對方是否存活 (VRRP Heartbeat),必須建立一條橫向的互連線路。這條線路加上兩台 Core 分別下接到 Access Switch 的線路,三者在物理上就圍成了一個封閉的三角形 (Loop)。
  • 廣播風暴風險:廣播封包 (Broadcast) 會順著這個三角形路徑無限循環。若沒有 STP 機制,只需幾秒鐘就能癱瘓整個網路。
  • STP 的代價:為了防止風暴,STP 會強制 Block (阻斷) 其中一條鏈路。結果是:雖然買了兩條線、兩台設備,卻只有一台在工作,另一台純待命,浪費 50% 效能。
  • VRRP 的限制:標準 VRRP 只有 Master 會轉發封包,Backup 收到的封包會被丟棄 (Drop),無法達成負載平衡。

ExtremeXOS MLAG 的解決方案

關鍵技術詳解:ISC Link (Inter-Switch Connection)

MLAG 的核心在於兩台 Core Switch 之間的這條 ISC 連線。它不僅僅是一條線,而是一個複雜的通道:

  • 物理組成 (LACP Trunk):為了避免這條關鍵鏈路成為單點故障或頻寬瓶頸,我們通常使用多個實體介面綁定成 LACP 來建立 ISC。
  • VLAN 結構 (ISC + User VLANs):這條 Trunk 裡面跑了兩類 VLAN:
    • ISC VLAN (Control):專用 VLAN,用來同步兩台設備的 MLAG 狀態表與 VRRP 狀態。
    • User VLANs (Data):這點最重要!ISC 必須同時承載所有使用者的 VLAN (如 vlan 10, 20)。
  • 環狀形成的根本原因:正因為 ISC Link 承載了 User VLAN,加上兩台 Core 下接到 Access Switch 的線路也承載了同樣的 User VLAN,這三條路徑在物理上對 User VLAN 形成了一個完美的環狀 (Ring)

這就是為什麼我們需要 MLAG!MLAG 協定透過特殊的控制機制,將這個物理環狀「隱藏」起來,讓下層設備與 STP 誤以為這是一條直線,從而避免了 Block,同時解決了廣播風暴。

  1. 邏輯虛擬化:L3-A 與 L3-B 透過 ISC 同步狀態,將兩台實體設備模擬成單一邏輯節點。因此,物理上的「三角形」在邏輯上變成了「直線」,消除了 L2 迴圈,不再需要 STP Block 端口
  2. VRRP 狀態同步:L3-A 與 L3-B 透過 ISC 傳遞 VRRP Hello 封包,不需要經過下層網路,避免了風暴風險。
  3. Active-Active 轉發 (關鍵技術):在 ExtremeXOS 中,啟用 Fabric Routing 後,VRRP Backup 也能轉發封包。這意味著,無論流量流向 L3-A 還是 L3-B,兩台都能同時進行路由轉發,頻寬利用率達到 100%。

// ExtremeXOS 關鍵參數設定範例

# 設定 ISC 的 LACP 與 VLAN Tag

enable sharing 1 grouping 1-2 algorithm address-based L2 <-- 建立 ISC LACP Trunk

configure vlan "ISC_Vlan" add ports 1 tagged <-- 加入 Control VLAN

configure vlan "User_Vlan" add ports 1 tagged <-- 加入 User VLAN (形成環狀的主因)

# 設定 MLAG Peer

create mlag peer "peer_To_SW2"

configure mlag peer "peer_To_SW2" ipaddress 192.168.100.2 vr VR-Default

enable mlag port 10 peer "peer_To_SW2" id 10

三、架構視覺化 (Visuals)

1. 問題場景:傳統 VRRP 的物理迴圈

為了讓兩台 L3 Core 交換 VRRP 狀態,必須連接一條橫向線路。這與下方的 Access Switch 形成了一個物理三角形 (Loop)。
若無 STP 介入,廣播封包將在此迴圈無限繞行 (紅色路徑);若 STP 介入,則必須阻斷一邊 (橘色虛線),造成浪費。

flowchart TD %% 定義節點 subgraph Core_Layer ["Core Layer (L3)"] direction LR L3_A["L3 SW-A
(VRRP Master)"] L3_B["L3 SW-B
(VRRP Backup)"] end subgraph Access_Layer ["Access Layer (L2)"] L2_User["Access Switch
(L2)"] end %% 定義連線與迴圈路徑 L3_A <==>|1. VRRP Keepalive Link| L3_B L3_A <==>|2. Uplink Main| L2_User L3_B -.-x|3. STP Blocking| L2_User %% 樣式設定 style L3_A fill:#d1fae5,stroke:#059669,stroke-width:2px style L3_B fill:#fee2e2,stroke:#b91c1c,stroke-width:2px style L2_User fill:#e0f2fe,stroke:#0284c7,stroke-width:2px %% 強調迴圈的連線顏色 linkStyle 0 stroke:#ef4444,stroke-width:3px,color:#b91c1c linkStyle 1 stroke:#22c55e,stroke-width:3px,color:#15803d linkStyle 2 stroke:#f59e0b,stroke-width:2px,stroke-dasharray: 5 5,color:#b45309

2. 解決方案:MLAG + VRRP Active-Active

特別注意 VRRP 角色: 雖然系統仍有 Master 與 Backup 之分 (控制層面),但在資料層面 (Data Plane),兩者皆能主動轉發流量。

graph TD subgraph "Logical Core (MLAG Domain)" %% 這裡明確標示 VRRP 角色 L3_A["L3 SW-A
(VRRP Master)"] L3_B["L3 SW-B
(VRRP Backup)"] %% ISC 詳細描述 ISC[("ISC Link (LACP Trunk)
VLANs: ISC + User Data")] L3_A <==> ISC <==> L3_B end subgraph "Access Layer" L2_User[User Access Switch] end L3_A == "LACP Member 1 (Active)
Carrying User VLAN" ==> L2_User L3_B == "LACP Member 2 (Active)
Carrying User VLAN" ==> L2_User %% Logic representation note[下層 L2 Switch 看到的是單一個 LACP Trunk] L2_User -.-> note style ISC fill:#fef3c7,stroke:#d97706,stroke-width:4px style L3_A fill:#d1fae5,stroke:#059669 style L3_B fill:#d1fae5,stroke:#059669

3. 進階架構:多網段 VRRP 分流 (VRRP Load Balancing)

當網路環境有多個網段 (Subnet) 時,我們可以將不同的 VLAN Master 角色分配給不同的核心交換器。
雖然 MLAG 已經允許雙主動轉發,但這種設計可以平衡控制層面 (Control Plane) 的負載 (如 ARP 請求處理),避免單一設備 CPU 過忙。

graph TD subgraph "Core Layer (MLAG Domain)" %% 定義 L3-A 的角色 L3_A["L3 SW-A
(Master: VLAN 10)
(Backup: VLAN 20)"] %% 定義 L3-B 的角色 L3_B["L3 SW-B
(Backup: VLAN 10)
(Master: VLAN 20)"] %% ISC 明確標示 VLAN 10, 20 ISC[("ISC Link
(LACP Trunk)
VLANs: ISC, 10, 20")] L3_A <==> ISC <==> L3_B end subgraph "Different Network Segments" %% 網段 1 (VLAN 10) SW_10["Access SW (VLAN 10)
Gateway: 192.168.10.254"] %% 網段 2 (VLAN 20) SW_20["Access SW (VLAN 20)
Gateway: 192.168.20.254"] end %% 連線關係 L3_A == "MLAG Link" ==> SW_10 L3_B == "MLAG Link" ==> SW_10 L3_A == "MLAG Link" ==> SW_20 L3_B == "MLAG Link" ==> SW_20 %% 樣式 style L3_A fill:#e0e7ff,stroke:#4338ca,stroke-width:2px style L3_B fill:#e0e7ff,stroke:#4338ca,stroke-width:2px style SW_10 fill:#dcfce7,stroke:#166534 style SW_20 fill:#ffedd5,stroke:#9a3412 style ISC fill:#fef3c7,stroke:#d97706,stroke-width:4px

四、實務應用場景 (Use Case)

企業核心網路 (Core Network) 無縫升級

場景描述:某大型醫院需要 24/7 不中斷的醫療資訊系統 (HIS)。舊架構使用單純 VRRP,當主核心交換器故障切換時,STP 重新收斂需要 30-50 秒,導致掛號系統短暫斷線。

導入 MLAG 設計:

  • 部署方式:在兩台 ExtremeXOS 核心交換器之間建立 ISC (Inter-Switch Connection),並將下接樓層交換器的 Port 設定為 MLAG Id。
  • VRRP 優化:啟用 Fabric Routing (Active-Active),讓兩台核心同時處理資料庫流量。

優點 (Pros)
  • 頻寬利用率從 50% 提升至 100%。
  • 故障切換時間 (Failover) 低於 1 秒 (因為線路本來就是 Active 的)。
  • 消除 STP 複雜度與計算錯誤風險。
缺點/注意事項 (Cons)
  • 設定較複雜,需確保 ISC 鏈路穩定 (通常建議用多條線做 LACP)。
  • 兩台設備的韌體版本建議保持一致。

五、隨堂測驗 (Quiz)

請回答下列問題以測試您對 VRRP 與 MLAG 架構的理解。

1. 在不使用 MLAG 的情況下,兩台 L3 交換器下接同一台 L2 交換器形成環狀,通常依賴什麼協定來防止廣播風暴?

2. MLAG 架構中,關於 ISC Link (Inter-Switch Connection) 的描述,何者正確?

3. 結合 VRRP 與 MLAG 的最大好處之一是實現了「Active-Active」轉發。這意味著什麼?

4. 從下層 L2 交換器 (Access Switch) 的視角來看,上層啟用了 MLAG 的兩台核心交換器看起來像什麼?

5. 為何單純使用 VRRP (無 MLAG) 時,Backup 路由器通常無法利用其下行頻寬?