ExtremeXOS 網路架構大師班

主題:Loopback Interface 與 Static Route ECMP (等價多路徑路由)

20 年資深網路架構師
一、核心概念 (Concept)

1. Loopback Interface (迴環介面)

  • 一句話定義:一個邏輯上的虛擬介面,只要設備開機它就永遠處於 Up 狀態,不會因為實體線路斷線而失效。
  • 生活化比喻: 想像這是一間公司的「總機號碼」。不管哪個分機 (實體 Port) 忙線或壞掉,只要公司 (Switch) 還在運作,打總機號碼 (Loopback IP) 永遠能找到這間公司。

2. ECMP (Equal Cost Multi-Path)

  • 一句話定義:當前往同一目的地有多條「成本相同」的路徑時,路由器同時使用這些路徑來分散流量。
  • 生活化比喻: 像是高速公路的收費站有 4 個閘道 (路徑) 同時開啟。車流 (封包) 不必排同一條隊伍,可以隨機或依照規則分配到這 4 個閘道,同時通過,速度更快且不會塞車。
二、運作原理 (Mechanism)

技術細節

Static Route ECMP 的關鍵在於路由表 (Routing Table) 中,針對同一個目的網段 (Destination Subnet),設定了多個不同的下一跳 (Next-Hop),且這些路徑的優先權 (Metric/Cost) 必須完全相同。

  • FIB (Forwarding Information Base):硬體層面會根據 Hash 演算法決定封包走哪條路。
  • Hashing 演算法:通常基於 5-Tuple (來源 IP, 目的 IP, 協定, 來源 Port, 目的 Port) 計算,確保同一條連線 (Flow) 走同一條路,避免封包亂序 (Out-of-order)。
ExtremeXOS 關鍵參數
enable iproute sharing 全域指令:開啟路由負載平衡功能。 configure iproute add [Dest] [Mask] [Gateway_1] configure iproute add [Dest] [Mask] [Gateway_2] 重複輸入相同的目的地,但不同的 Gateway,即自動形成 ECMP。
三、架構視覺化 (Visuals)

本架構展示 A 到 B 到 C 的串接,並在每段鏈路之間使用兩條實體線路進行 ECMP 負載平衡。目標是讓 A 能透過多重路徑訪問 C 的 Loopback IP。

1. 實體與邏輯拓撲圖 (Topology)

graph TD subgraph "Switch A (Source)" A[Core-A] LoopA[Loopback: 1.1.1.1/32] A --- LoopA end subgraph "Switch B (Transit)" B[Core-B] LoopB[Loopback: 2.2.2.2/32] B --- LoopB end subgraph "Switch C (Destination)" C[Core-C] LoopC[Loopback: 3.3.3.3/32] C --- LoopC end %% Links between A and B A == "Link 1 (VLAN 10)
10.1.1.0/30" ==> B A == "Link 2 (VLAN 20)
10.1.2.0/30" ==> B %% Links between B and C B == "Link 3 (VLAN 30)
10.2.1.0/30" ==> C B == "Link 4 (VLAN 40)
10.2.2.0/30" ==> C classDef sw fill:#4c2a86,stroke:#333,stroke-width:2px,color:white; classDef loop fill:#fff,stroke:#4c2a86,stroke-dasharray: 5 5; class A,B,C sw; class LoopA,LoopB,LoopC loop;

2. 封包轉送流程 (Packet Flow)

sequenceDiagram participant Host as Client (接在A) participant SwA as Switch A participant SwB as Switch B participant SwC as Switch C Note over SwA: 目的地: 3.3.3.3 (C Loopback) Host->>SwA: 送出封包 (Dst: 3.3.3.3) rect rgb(240, 240, 255) Note right of SwA: 查詢 Routing Table Note right of SwA: 發現 2 個 Next Hops:
1. 10.1.1.2 (往B path1)
2. 10.1.2.2 (往B path2) Note right of SwA: 執行 Hash 演算法 end alt Hash 結果 = Path 1 SwA->>SwB: 經由 VLAN 10 轉送 else Hash 結果 = Path 2 SwA->>SwB: 經由 VLAN 20 轉送 end rect rgb(255, 240, 240) Note right of SwB: 收到封包,查詢往 3.3.3.3 Note right of SwB: 發現 2 個 Next Hops:
1. 10.2.1.2 (往C path1)
2. 10.2.2.2 (往C path2) end alt Hash 結果 = Path A SwB->>SwC: 經由 VLAN 30 轉送 else Hash 結果 = Path B SwB->>SwC: 經由 VLAN 40 轉送 end SwC->>SwC: 到達本機 Loopback 介面
四、實務應用與 Lab 演練 (Use Case & Lab)

應用場景:高可用性骨幹網路

在大型園區網路中,核心交換器之間通常擁有多條光纖。透過 ECMP,我們能合併頻寬並提供備援。若 Link 1 斷線,Hash 機制會自動將流量導向 Link 2,且 Loopback IP 確保管理 IP 永不改變,方便 NMS 監控。

# Switch A Configuration - Setting up ECMP to B
create vlan "Loopback"
configure vlan "Loopback" ipaddress 1.1.1.1/32
enable loopback-mode vlan "Loopback" # 啟用 EXOS Loopback 模式

# 設定與 Switch B 連接的兩個 VLAN
create vlan "To-B-Link1"
configure vlan "To-B-Link1" tag 10
configure vlan "To-B-Link1" ipaddress 10.1.1.1/30
create vlan "To-B-Link2"
configure vlan "To-B-Link2" tag 20
configure vlan "To-B-Link2" ipaddress 10.1.2.1/30

# 開啟 ECMP 功能
enable iproute sharing

# 設定 Static Route 往 C 的 Loopback (下一跳皆指向 B)
configure iproute add 3.3.3.3/32 10.1.1.2 # Path 1 via VLAN 10
configure iproute add 3.3.3.3/32 10.1.2.2 # Path 2 via VLAN 20

驗證方法一:檢查 Routing Table

Switch-A # show iproute 3.3.3.3

Dest Gateway Mtr Flags VLAN Duration
3.3.3.3/32 10.1.1.2 1 UG-D--- To-B-Link1 0d:0h:2m:10s
3.3.3.3/32 10.1.2.2 1 UG-D--- To-B-Link2 0d:0h:2m:10s

驗證方法二:使用 Trace Route (路徑追蹤)

Switch-A # traceroute 3.3.3.3

traceroute to 3.3.3.3 (3.3.3.3), 30 hops max, 60 byte packets
1 10.1.1.2 (To-B-Link1) 1.123 ms 10.1.2.2 (To-B-Link2) 1.054 ms 10.1.1.2 (To-B-Link1) 1.110 ms
2 3.3.3.3 (Loopback) 2.150 ms 2.120 ms 2.135 ms

大師解讀: 注意看第 1 跳 (Hop 1),traceroute 發送的三個探測包 (Probes) 出現了不同的 IP (10.1.1.2 與 10.1.2.2)。 這是因為 Traceroute 每個 Probe 使用不同的 UDP Port,導致 Hash 運算結果不同,成功驗證了流量正在兩條路徑上進行負載平衡!

五、隨堂測驗 (Quiz)

1. 在 ExtremeXOS 中,若要啟用 ECMP 功能,必須輸入哪條指令?

enable ospf multipath
enable iproute sharing
enable loopback-mode

2. 為什麼建議使用 Loopback IP 作為設備的管理 IP?

因為它的傳輸速度最快
因為它不會隨實體介面 Down 而失效 (恆定性)
因為只有 Loopback 支援 DHCP

3. 關於 Static Route 達成 ECMP 的條件,下列何者正確?

不同路徑的 Cost/Metric 必須不同
目的地 IP 相同但 Subnet Mask 不同
目的地相同且 Cost/Metric 相同

4. 預設情況下,交換器如何決定 ECMP 的封包要走哪條路?

依序輪流 (Round Robin)
基於封包表頭資訊的 Hash 演算法
依據線路頻寬大小

5. 在 EXOS 中,要設定一個 VLAN 為 Loopback 介面,除了給 IP 之外還需要什麼?

configure vlan add ports 1
enable loopback-mode vlan [name]
enable ipforwarding