Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

OPNsense 高可用架構:CARP 原理與設定說明

Posted on 2025-11-122025-11-12 by Rico

🧭 一、什麼是 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 介面

  1. 在兩台 OPNsense 中各自建立一個「同步介面」,例如: Interface: SYNC IP: 10.0.0.1 (A), 10.0.0.2 (B)
  2. 兩台之間應為直接線纜或專用 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

  1. 關閉主機 A 的 WAN 或直接拔除電源。
  2. 備援 B 會在 2 ~ 3 秒內接管虛擬 IP。
  3. 連線不中斷。

✅ 五、設定建議

項目建議
心跳介面使用專用 VLAN 或實體線路,避免混用 LAN。
VHID每組 CARP VIP 必須唯一。
AdvSkew主機 0 ~ 10,備援 50 ~ 100 較常見。
pfsync優先走內部同步網段,不經防火牆過濾。
測試建立完成後務必模擬斷線切換。

💡 六、常見用途

  • 雙防火牆主備冗餘架構(WAN / LAN 都可使用);
  • 內外網路虛擬 IP 服務;
  • 資料中心或跨區機房防火牆備援。

✅ 七、結論

CARP 是 OPNsense 實現高可用的重要基礎,
能讓兩台防火牆像「一台虛擬設備」般運作,
在主機故障時自動切換並保持網路不中斷。

搭配 pfsync 與 XMLRPC 同步,
即可構建完整、穩定又安全的企業級高可用防火牆架構。

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme