Was ist Common Address Redundancy Protocol?
Das Common Address Redundancy Protocol (CARP) ist ein automatisches Failover- und Redundanzprotokoll, das von OpenBSD im Oktober 2003 eingeführt wurde. CARP teilt eine gemeinsame IP-Adresse zwischen mehreren Hosts in demselben Netzwerksegment, um eine Failover-Redundanz für mehrere Server oder Hosts bereitzustellen. Es ist eine Alternative zum Virtual Router Redundancy Protocol (VRRP) der Internet Engineering Task Force (IETF) und zum Hot Standby Redundancy Protocol (HSRP) von Cisco.
CARP wurde als eine freie und quelloffene Alternative zu VRRP entworfen, von der Cisco behauptete, dass sie eine gewisse technische Ähnlichkeit mit ihrer proprietären HSRP aufwies. CARP funktioniert, indem es einer Gruppe von Hosts im selben Netzwerksegment erlaubt, eine IP-Adresse zu teilen. Diese Gruppe von Hosts wird als Redundanzgruppe bezeichnet. Der Redundanzgruppe wird eine IP-Adresse und eine gemeinsame virtuelle Host-ID (VHID) zugewiesen. Die VHID ermöglicht Gruppenmitgliedern zu identifizieren, zu welcher Redundanzgruppe sie gehören. Innerhalb der Gruppe wird ein Host als Master-Host und der Rest als Backup-Host festgelegt. Der Master-Host ist der Eigentümer der freigegebenen IP-Adresse. Der Master-Host antwortet auf jeglichen Verkehr oder ARP-Anfragen, die auf ihn gerichtet sind.
Jeder Host kann über mehrere physikalische Schnittstellen gleichzeitig zu mehr als einer Redundanzgruppe gehören. Der Master-Host sendet CARP-Ankündigungen an die Backup-Hosts.
Diese CARP-Werbungen oder CARP-Pakete setzen sich aus zwei Werten zusammen:
Die Werbebasis (advbase) des Masterhosts: Dies kann unabhängig für jeden Host in der Redundanzgruppe konfiguriert werden. advbase kann Werte zwischen 1 und 255 enthalten.
Der Advert-Skew (advskew): gibt an, wie stark die advbase beim Senden von CARP-Advertisements an andere Hosts verzerrt werden soll. Seine Werte reichen von 1 bis 254.
Durch Manipulieren von advbase- und advskew-Werten auf jedem Host kann der Master-CARP-Host bestimmt werden. Je höher der kombinierte Wert dieser beiden Parameter ist, desto weniger bevorzugt wird dieser Host bei der Auswahl eines Masters. Im Falle eines Versagens des CARP-Pakets nach einer bestimmten Zeit oder beim Empfang eines größeren Advbase plus advskew-Werts übernimmt ein Backup-Host die Aufgaben des Master-Hosts.
CARP verfügt über eingeschränkte Fähigkeiten zum Lastenausgleich der eingehenden Verbindungen zwischen Hosts in einem Ethernet-Netzwerk. Bei Lastausgleichsoperationen werden mehrere CARP-Schnittstellen für dieselbe IP-Adresse, aber für unterschiedliche VHIDs konfiguriert. Sobald eine ARP-Anfrage empfangen wird, verwendet das CARP-Protokoll eine Hash-Funktion gegen die Quell-IP-Adresse in der ARP-Anfrage, um zu bestimmen, zu welcher VHID diese Anfrage gehören soll. Wenn sich die entsprechende CARP-Schnittstelle in einem Master-Status befindet, erhält die ARP-Anforderung eine Antwort, andernfalls wird sie ignoriert.
Um zu verhindern, dass ein böswilliger Benutzer im Netzwerksegment CARP-Werbung spoofiert, kann jede Gruppe mit einem Passwort konfiguriert werden. Jedes an die Gruppe gesendete CARP-Paket wird dann durch einen Hash-basierten Hash-Authentifizierungscode (SHA1 HMAC) des sicheren Hashalgorithmus 1 geschützt. CARP unterstützt sowohl IPv4 (Internet Protocol Version 4) als auch IPV6 (Internet Protocol Version 6). CARP kann in DNS-Servern (Domain Name System), Firewalls und anderen Paketfilterservern verwendet werden, bei denen der Client im Falle eines Failovers nicht alle IP-Adressen kennen und schalten muss.