# 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.

  1. CARP: Teilt eine “schwimmende” IP-Adresse. Nur der Master antwortet auf ARP-Anfragen für diese IP.
  2. XMLRPC (Config Sync): Überträgt jede Änderung (Regeln, Aliase) vom Master auf den Backup.
  3. 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.

# Schritt 2: CARP VIPs anlegen

Interfaces -> Virtual IPs -> Settings.

  1. Typ: CARP.
  2. Interface: LAN.
  3. VHID: Eine eindeutige ID (1-255).
  4. AdvBase / AdvSkew:
    • Master: AdvBase 1, AdvSkew 0 (Aggressiv).
    • Backup: AdvBase 1, AdvSkew 100 (Wartend).

# Schritt 3: HA Settings (High Availability)

System -> High Availability -> Settings.


# 3. Deep Dive: CARP Maintenance Mode

Patchen ohne Panik.

Bevor Sie den Master-Knoten neustarten oder updaten:


# 4. Day-2 Operations: DHCP Failover

IP-Vergabe im Cluster.

Wenn Sie DHCP in einem HA-Cluster nutzen (Artikel 577):


# 5. Troubleshooting & “War Stories”

Wenn beide Knoten Master sein wollen.

# Top 3 Fehlerbilder

  1. 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.
  2. 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.
  3. 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.


# 7. Fazit & Empfehlung

High Availability ist der Goldstandard für professionelle Netzwerke.


# 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

# Referenzen