# OPNsense High Availability: CARP, Sync & Failover Deep Dive
TL;DR / Management Summary Ein einzelnes Gateway ist ein gefährlicher Single-Point-of-Failure. Mit OPNsense High Availability (HA) schalten wir zwei identische Knoten zu einem Cluster zusammen. Herzstück ist der Standard CARP (Common Address Redundancy Protocol), der eine virtuelle IP (VIP) zwischen den Knoten schwenkt. Ein Senior Admin nutzt XMLRPC für den automatischen Konfigurationsabgleich und pfsync, um die State-Tabelle (Artikel 554) zu spiegeln, damit Verbindungen bei einem Failover nicht abbrechen.
# 1. Einführung & Architektur
Aktiv-Passiv Redundanz.
Ein OPNsense Cluster besteht aus einem Master und einem Backup Knoten.
- CARP: Teilt eine “schwimmende” IP-Adresse. Nur der Master antwortet auf ARP-Anfragen für diese IP.
- XMLRPC (Config Sync): Überträgt jede Änderung (Regeln, Aliase) vom Master auf den Backup.
- pfsync (State Sync): Synchronisiert die Liste der aktiven Verbindungen in Echtzeit.
# Architektur-Übersicht (Mermaid)
graph TD
subgraph "ISP / WAN"
VIP_WAN[CARP Virtual IP - WAN]
end
subgraph "OPNsense Cluster"
FW1[Node 1 - Master] <-->|Sync Interface| FW2[Node 2 - Backup]
end
subgraph "Internal LAN"
VIP_LAN[CARP Virtual IP - LAN]
end
FW1 & FW2 --- VIP_WAN
FW1 & FW2 --- VIP_LAN
VIP_LAN --- CLIENTS[Switch / Clients]
# 2. Einrichtung in der Praxis
Vom Einzelkämpfer zum Duo.
# Schritt 1: Dediziertes Sync-Interface
Nutzen Sie eine eigene physische Schnittstelle (oder ein dediziertes VLAN) für den Sync-Traffic.
- Wichtig: Der Traffic ist unverschlüsselt und enthält Passwörter (XMLRPC) sowie Session-Daten. Sichern Sie dieses Netz physisch ab!
# Schritt 2: CARP VIPs anlegen
Interfaces -> Virtual IPs -> Settings.
- Typ:
CARP. - Interface:
LAN. - VHID: Eine eindeutige ID (1-255).
- AdvBase / AdvSkew:
- Master:
AdvBase 1, AdvSkew 0(Aggressiv). - Backup:
AdvBase 1, AdvSkew 100(Wartend).
- Master:
# Schritt 3: HA Settings (High Availability)
System -> High Availability -> Settings.
- Aktivieren Sie die Synchronisation für alle Bereiche (Regeln, Aliase, DHCP, etc.).
- Geben Sie die IP des Backup-Knotens und den User
rootan.
# 3. Deep Dive: CARP Maintenance Mode
Patchen ohne Panik.
Bevor Sie den Master-Knoten neustarten oder updaten:
- Aktion: Gehen Sie zu
Interfaces -> Diagnostics -> CARP Statusund klicken Sie auf Enter Persistent Maintenance Mode. - Effekt: Der Knoten erhöht seinen
AdvSkewauf 254. Der Backup-Knoten übernimmt sofort die VIPs. Die User merken nichts, da die States bereits via pfsync vorhanden sind.
# 4. Day-2 Operations: DHCP Failover
IP-Vergabe im Cluster.
Wenn Sie DHCP in einem HA-Cluster nutzen (Artikel 577):
- Wichtig: Setzen Sie die Failover Peer IP in den DHCP-Einstellungen des jeweiligen Interfaces auf die IP des anderen Knotens.
- Ergebnis: Beide Knoten verwalten den Pool gemeinsam und stellen sicher, dass keine IP doppelt vergeben wird.
# 5. Troubleshooting & “War Stories”
Wenn beide Knoten Master sein wollen.
# Top 3 Fehlerbilder
-
Symptom: “Split Brain” (Beide Knoten sind Master).
- Ursache: Der Heartbeat (Multicast auf Port 112) kommt nicht durch den Switch.
- Lösung: IGMP-Snooping am Switch prüfen oder CARP auf Unicast umstellen.
-
Symptom: VPN-Tunnel brechen beim Failover ab.
- Ursache: IPsec/OpenVPN ist an die physikalische WAN-IP gebunden statt an die CARP-VIP.
- Lösung: Interface-Zuweisung in den VPN-Settings auf die CARP-IP ändern.
-
Symptom: Sync-Schleife oder “Incomplete Sync”.
- Lösung: Versionen der OPNsense prüfen. Beide Knoten müssen exakt den gleichen Firmware-Stand und die gleichen Plugins haben.
# “War Story”: Der “Virtuelle” MAC-Konflikt
Ein Admin betrieb zwei OPNsense VMs in einem Proxmox-Cluster mit CARP.
Das Problem: CARP generiert eigene virtuelle MAC-Adressen (z.B. 00:00:5e:00:01:XX). Proxmox sah diese MACs an verschiedenen Ports der Bridge und blockierte sie als “MAC Spoofing”.
Die Lösung: Wir mussten in den Proxmox-Netzwerkeinstellungen der VMs den Haken bei “MAC Filter / IP Filter” entfernen und am Host-Switch “Promiscuous Mode” oder “MAC Learning” erlauben.
Lehre: In virtuellen Umgebungen ist CARP kein Standard-Traffic. Der Hypervisor muss explizit wissen, dass eine VM mehrere MACs nutzen darf.
# 6. Monitoring & Alerting
Zustand des Clusters.
# Dashboard Analyse
Fügen Sie das Widget “CARP Status” hinzu.
- KPI: Status muss
MASTERoderBACKUPsein.INITdeutet auf einen Fehler hin.
# 7. Fazit & Empfehlung
High Availability ist der Goldstandard für professionelle Netzwerke.
- Empfehlung: Nutzen Sie HA immer, wenn mehr als 10 Mitarbeiter von der Firewall abhängen.
- Hardware: Achten Sie darauf, dass beide Knoten über die identische Anzahl an Netzwerkports verfügen, da das XMLRPC-Mapping sonst fehlschlägt.
# Anhang: Cheatsheet
| Aufgabe | Pfad / Befehl |
|---|---|
| CARP Status | Interfaces -> Diagnostics -> CARP Status |
| HA Sync Status | System -> High Availability -> Status |
| CARP Reset | ifconfig vhidX destroy (Shell) |
| Force Sync | System -> High Availability -> Settings -> Click Save |