A10 Networks Thunder 實戰課程

Level 2 - Core Skills: 高可用性架構 (High Availability)

一、核心概念 (Concept)

一句話定義:

VRRP-A (Virtual Router Redundancy Protocol - A10 Extension) 是一套 A10 專有的高可用性機制,透過將兩台或多台設備組成一個群組,確保當一台設備故障時,另一台能「無縫接軌」所有網路服務與連線。

生活化比喻:餐廳的「雙主廚制」

想像一間高級餐廳有兩位主廚(設備):

Active (主廚): 負責所有出餐(處理封包),站在出餐口指揮。
Standby (副主廚): 站在旁邊隨時待命,雖然不炒菜,但他會即時同步主廚的菜單進度(Session Sync)。

一旦主廚突然身體不適(故障),副主廚因為知道所有菜單進度,能立刻站上出餐口繼續做菜,客人完全感覺不到更換了廚師。

Active 主廚

上菜中
即時同步

Standby 副主廚

監控菜單

二、運作原理 (Mechanism)

技術細節

  • VRID (Virtual Router ID): 這是 HA 群組的識別證。兩台設備必須設定相同的 VRID 才能成為一組搭檔。每個 VRID 擁有一組虛擬 MAC 位址。
  • Hello Messages (心跳偵測): 設備間會透過專用的 VLAN 發送 Hello 封包。如果 Standby 收不到 Active 的心跳,就會判定對方「陣亡」,進而接手服務。
  • Conn-Sync (Session Synchronization): 這是 A10 的強項。Active 設備會將當前的連線表 (Session Table) 即時複製給 Standby。這樣 Failover 發生時,使用者的 TCP 連線不會斷線,不需重新登入。

關鍵參數

Device Priority 數值越大越優先 (預設 100)
Set-ID HA Set 的唯一識別碼
Preemption (搶佔) Enable/Disable (高權重是否搶回 Active)
Hello Interval 預設 200ms (毫秒)

模式比較:Active-Standby vs. Active-Active

特性 Active-Standby (推薦) Active-Active
流量處理 100% 由 Active 處理,Standby 閒置待命。 兩台同時處理流量 (通常透過多個 VRID 群組實現)。
除錯難度 簡單,路徑明確。 複雜,需判斷封包走哪台設備 (Asymmetric Routing)。
適用場景 大多數企業環境,追求穩定與管理簡便。 超大流量環境,不希望有閒置資源。

三、架構視覺化 (Visuals)

1. VRRP-A 物理連接拓樸 (Topology)

graph TD Client((Client User)) -->|VIP: 10.10.10.1| HA_Cluster subgraph HA_Cluster [VRRP-A Set: 1, VRID: 0] direction TB VIP[VIP: 10.10.10.1] A1[Active Thunder] S1[Standby Thunder] VIP -.-> A1 VIP -.-> S1 A1 <==>|"Ethernet 1
Heartbeat + Sync"| S1 style A1 fill:#001f3f,stroke:#333,stroke-width:2px,color:#fff style S1 fill:#fff,stroke:#001f3f,stroke-width:2px,stroke-dasharray: 5 5 end A1 -->|Traffic| Servers[Backend Servers] linkStyle 3 stroke:#d6006e,stroke-width:4px

實線代表主要流量路徑,虛線代表待命路徑。中間的洋紅色粗線為 HA 同步線路 (Ethernet 1)。

2. Failover 切換流程 (Sequence)

sequenceDiagram participant C as Client participant A as A10-Active participant S as A10-Standby participant B as Backend-Server Note over A,S: 正常狀態 A->>S: Hello Packet (Priority 200) A->>S: Session Sync Data (連線表) C->>A: Request (TCP SY) A->>B: Fwd Request B-->>A: Response Note over A: ⚠️ 發生故障 (Power Loss) Note over S: 等待 Hello 超時 (Dead Timer) S->>S: 昇級為 Active (Priority 150) S->>C: 發送 Gratuitous ARP (宣告 VIP MAC 在我這) Note over S: 接手服務 C->>S: Next Request (已有 Session 紀錄) S->>B: Fwd Request B-->>S: Response

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

案例:證券交易系統的「零秒」備援

情境: 某大型證券商的下單系統,每秒鐘有數千筆交易。如果防火牆或負載平衡器故障導致連線中斷,客戶必須重新登入下單,這幾秒的延遲可能造成巨大的金錢損失。

解決方案: 部署兩台 A10 Thunder 形成 VRRP-A Active-Standby 架構,並開啟 Conn-Sync (Session Synchronization) 功能。

優點

  • 交易不中斷: 即便 Active 設備斷電,客戶端的 TCP 連線依然存活,不需重連。
  • 維護便利: 網管人員可以在上班時間手動切換至 Standby 進行韌體更新,完全不影響業務。

缺點/挑戰

  • 成本較高: 需購買兩台設備,但平時只有一台在運作 (Active-Standby 模式下)。
  • 同步頻寬: 若連線量極大 (數百萬 Concurrent),HA 介面之間的頻寬需足夠大 (建議用 10G/40G 直連)。

五、實戰設定範例 (Configuration Lab) - AA 路由模式

場景描述 (Active-Active / Routed Mode):

企業實施 Active-Active (AA) 架構,且 Client 端與 Server 端位於不同網段 (Routed Mode)。
需求:
Client Side (10.10.10.x):配置 VIP (10.10.10.1 & .2) 供用戶存取。
Server Side (192.168.20.x):配置 Gateway IP (192.168.20.1 & .2) 供後端伺服器回程路由使用。
Ethernet 1:Client 側 + HA Sync。 Ethernet 2:Server 側。

實驗拓樸圖 (Routed Mode)

graph TD Internet((Internet)) subgraph HA_Cluster [A10 HA Pair] direction TB DevA["Device A
Eth1 (Client): 10.10.10.11
Eth2 (Server): 192.168.20.11"] DevB["Device B
Eth1 (Client): 10.10.10.12
Eth2 (Server): 192.168.20.12"] DevA <==>|"Eth 1
Heartbeat + Sync"| DevB end Internet -->|"VIP: 10.10.10.0/24"| DevA Internet -->|"VIP: 10.10.10.0/24"| DevB L2SW["L2 Switch
(VLAN Trunking)"] DevA -->|"Eth 2"| L2SW DevB -->|"Eth 2"| L2SW subgraph Servers [Backend Server Groups] SG1["Server A
IP: 192.168.20.100"] SG2["Server B
IP: 192.168.20.200"] end L2SW --> SG1 L2SW --> SG2 SG1 -.->|"Default GW: .1 (VRID 1)"| DevA SG2 -.->|"Default GW: .2 (VRID 2)"| DevB style DevA fill:#e6f0ff,stroke:#001f3f,stroke-width:2px style DevB fill:#e6f0ff,stroke:#001f3f,stroke-width:2px style L2SW fill:#fff,stroke:#333,stroke-width:2px
Device A Config Active for VRID 1
! 1. 設定共用參數
vrrp-a common
  device-id 1
  set-id 1
  enable

! 2. 設定 VRID 1 (我是 Active)
vrrp-a vrid 1
  floating-ip 10.10.10.1 (VIP1)
  floating-ip 192.168.20.1 (GW1)
  blade-parameters
    priority 200

! 3. 設定 VRID 2 (我是 Standby)
vrrp-a vrid 2
  floating-ip 10.10.10.2 (VIP2)
  floating-ip 192.168.20.2 (GW2)
  blade-parameters
    priority 150
  
! 4. 介面設定
interface ethernet 1 (Client Side)
  ip address 10.10.10.11 255.255.255.0
  vrrp-a vrid 1
  vrrp-a vrid 2

interface ethernet 2 (Server Side)
  ip address 192.168.20.11 255.255.255.0
  vrrp-a vrid 1
  vrrp-a vrid 2
Device B Config Active for VRID 2
! 1. 設定共用參數
vrrp-a common
  device-id 2
  set-id 1
  enable

! 2. 設定 VRID 1 (我是 Standby)
vrrp-a vrid 1
  floating-ip 10.10.10.1 (VIP1)
  floating-ip 192.168.20.1 (GW1)
  blade-parameters
    priority 150

! 3. 設定 VRID 2 (我是 Active)
vrrp-a vrid 2
  floating-ip 10.10.10.2 (VIP2)
  floating-ip 192.168.20.2 (GW2)
  blade-parameters
    priority 200
  
! 4. 介面設定
interface ethernet 1 (Client Side)
  ip address 10.10.10.12 255.255.255.0
  vrrp-a vrid 1
  vrrp-a vrid 2

interface ethernet 2 (Server Side)
  ip address 192.168.20.12 255.255.255.0
  vrrp-a vrid 1
  vrrp-a vrid 2

關鍵補充:後端伺服器網路設定 (Server Gateway Settings)

因為 Server IP (192.168.20.x) 與 VIP (10.10.10.x) 位於不同網段,伺服器的 Default Gateway 必須指向 A10 在 Server 網段上的 Floating IP,才能確保封包回程不迷路。

Server Group A (服務 A)

主機 IP: 192.168.20.100

Default Gateway: 192.168.20.1
(指向 VRID 1 的 Server-Side Floating IP)
Server Group B (服務 B)

主機 IP: 192.168.20.200

Default Gateway: 192.168.20.2
(指向 VRID 2 的 Server-Side Floating IP)

進階補充:HA 溝通機制與位址 (Communication & Addresses)

1. Multicast Address (標準 VRRP)

標準 VRRP 協定預設使用 Multicast 位址進行 Hello 封包溝通。

  • IPv4 Multicast: 224.0.0.18
  • Protocol: IP Protocol 112
2. A10 VRRP-A 專有擴充

A10 的 VRRP-A 為了同步大量的 Session Table,採用了專有的傳輸機制。

  • Sync Protocol: UDP Port 3003
  • Default Transport: Layer 2 Broadcast 或 Unicast (若指定 Peer IP)
注意:若防火牆位於 HA 介面中間,請務必放行 224.0.0.18 (VRRP)UDP 3003 (A10 Sync)

關鍵檢查指令 (Verification)

Show vrrp-a

查看目前 HA 狀態 (誰是 Active、誰是 Standby)。

Show vrrp-a sessions

確認 Session Table 的同步數量是否一致。

六、隨堂測驗 (Quiz)