🧭 一、什麼是 CARP?
CARP(Common Address Redundancy Protocol) 是一種用來建立防火牆高可用 (High Availability, HA) 的協定。
它允許多台防火牆共用一個虛擬 IP (Virtual IP),並在主機發生故障時自動切換,確保外部網路連線不中斷。
OPNsense 中可利用 CARP 將兩台或多台設備組成 HA 群組:
- 一台作為 主機(Master)
- 另一台作為 備援(Backup)
當主機停止運作或失去心跳(Heartbeat)時,備援主機會自動接管虛擬 IP 地址與所有連線。
⚙️ 二、運作原理
🔹 1️⃣ 虛擬 IP (Virtual IP)
CARP 使用虛擬 IP 作為服務對外提供的位址,例如:
Public: 203.66.10.10 (CARP VIP)
Master: 203.66.10.11
Backup: 203.66.10.12
外部網路僅知道 203.66.10.10,
不論哪台防火牆在運作,連線都會透過這個虛擬 IP 進入。
🔹 2️⃣ VHID 與 AdvSkew 機制
- VHID (Virtual Host ID):
每個 CARP 群組都有一個 ID,用以區分多組虛擬 IP。
若你有多個 CARP 介面,必須確保 VHID 不同。 - AdvSkew(優先序偏移值):
控制哪台防火牆成為 Master。
值越小優先權越高。
例如: 主機AdvSkew角色FW-A0MasterFW-B100Backup
🔹 3️⃣ 心跳訊號 (pfsync + CARP)
CARP 會使用 Layer 2 廣播 (multicast) 傳送心跳封包,
當備援主機偵測到主機停止傳送心跳時,會立即接管虛擬 IP。
此外,OPNsense 會搭配 pfsync 同步兩台防火牆的「狀態表」(state table),
確保切換時連線不中斷。
🧩 三、實際應用架構
[Internet]
│
▼
+-----------------+
| Virtual IP | ← CARP (203.66.10.10)
+-----------------+
│
├── Master: OPNsense-A (203.66.10.11)
└── Backup: OPNsense-B (203.66.10.12)
│
[Internal LAN Switch]
│
└── LAN Network (192.168.100.0/24)
外部流量皆透過 CARP 虛擬 IP 203.66.10.10 進入;
當 A 設備故障, B 會自動升為 Master 並繼續提供連線服務。
🧰 四、設定步驟
Step 1️⃣ 建立 Sync 介面
- 在兩台 OPNsense 中各自建立一個「同步介面」,例如:
Interface: SYNC IP: 10.0.0.1 (A), 10.0.0.2 (B) - 兩台之間應為直接線纜或專用 VLAN 連線。
Step 2️⃣ 啟用 pfsync
System → High Availability → Settings
- Enable pfsync 同步。
- 指定 Sync 介面。
Step 3️⃣ 設定 CARP 虛擬 IP
Firewall → Virtual IPs → +Add
- Type: CARP
- Interface: WAN(或內部介面)
- Virtual IP Address: 203.66.10.10/24
- VHID: 1
- Password: 自定共享密碼
- AdvSkew: 0 (主機), 100 (備援)
Step 4️⃣ 設定 XMLRPC 同步(選用)
若希望自動同步防火牆規則與設定:System → High Availability → Settings → XMLRPC Sync
- 指定對方主機 IP。
- 啟用設定同步項目(如 Firewall Rules、Aliases 等)。
Step 5️⃣ 測試 Failover
- 關閉主機 A 的 WAN 或直接拔除電源。
- 備援 B 會在 2 ~ 3 秒內接管虛擬 IP。
- 連線不中斷。
✅ 五、設定建議
| 項目 | 建議 |
|---|---|
| 心跳介面 | 使用專用 VLAN 或實體線路,避免混用 LAN。 |
| VHID | 每組 CARP VIP 必須唯一。 |
| AdvSkew | 主機 0 ~ 10,備援 50 ~ 100 較常見。 |
| pfsync | 優先走內部同步網段,不經防火牆過濾。 |
| 測試 | 建立完成後務必模擬斷線切換。 |
💡 六、常見用途
- 雙防火牆主備冗餘架構(WAN / LAN 都可使用);
- 內外網路虛擬 IP 服務;
- 資料中心或跨區機房防火牆備援。
✅ 七、結論
CARP 是 OPNsense 實現高可用的重要基礎,
能讓兩台防火牆像「一台虛擬設備」般運作,
在主機故障時自動切換並保持網路不中斷。
搭配 pfsync 與 XMLRPC 同步,
即可構建完整、穩定又安全的企業級高可用防火牆架構。