CARP (Common Address Redundancy Protocol) ist ein offenes, patentfreies First-Hop-Redundanz-Protokoll aus dem BSD-Umfeld, entwickelt vom OpenBSD-Projekt. Es erlaubt mehreren Hosts im selben Netzsegment, sich eine virtuelle IP-Adresse (VIP) zu teilen: Einer der Hosts ist Master und beantwortet die ARP-Anfragen für die VIP, die übrigen stehen als Backup bereit und übernehmen bei seinem Ausfall automatisch. CARP entstand 2003, weil Cisco seine Patente auf VRRP auch gegen freie Implementierungen durchsetzen wollte; das OpenBSD-Team entwickelte daraufhin mit CARP einen eigenen, rechtlich unbedenklichen Standard.

Eigenschaften

CARP-Gruppen werden über eine VHID (Virtual Host ID) unterschieden und über eine Advertisements-Frequenz plus Skew konfiguriert; der Host mit dem höchsten Advertise-Wert wird Master. Anders als VRRP besitzt CARP keine gemeinsame virtuelle MAC-Adresse, sondern jeder Host behält seine eigene MAC und beantwortet ARP individuell. Ein Passwort schützt die CARP-Pakete vor dem Eindringen fremder Hosts in die Gruppe. Seit OpenBSD 4.1 kann CARP auch IPsec-fähiges Verkehr schützen.

Im Zusammenspiel mit pfsync synchronisieren zwei CARP-Hosts ihre Firewall-Status-Tabellen (bei OpenBSD-PF), sodass eine aktive Verbindung einen Failover unbemerkt übersteht. CARP ist in OpenBSD, FreeBSD, NetBSD verfügbar; eine Linux-Implementierung existiert mit ucarp.

Abgrenzung

Wie HSRP und VRRP gehört CARP zur Familie der First-Hop-Redundanz-Protokolle (siehe FHRP). Im Gegensatz zu Ciscos proprietären Lösungen ist CARP vollständig offen und frei von Patentansprüchen — es ist die Standard-Lösung für redundante Firewalls und Gateways im OpenBSD-Umfeld und übernimmt dort die Rolle, die GLBP nur auf Cisco-Geräten ausfüllt.