Common Address Redundancy Protocol


Common Address Redundancy Protocol

Das Common Address Redundancy Protocol (CARP) ist ein Netzwerkprotokoll, mit dessen Hilfe sich die Verfügbarkeit von IP-Systemen erhöhen lässt. Dies wird dadurch erreicht, dass mehrere Rechner innerhalb eines lokalen Netzes dieselben virtuellen IP/MAC-Adressen für die Kommunikation mit anderen Systemen nutzen können. Haupteinsatzgebiet von CARP ist die Erstellung hochverfügbarer Gateways (Router/Firewall); mit CARP lassen sich aber auch Applikationsserver hochverfügbar machen. In der Internet-Protokoll-Familie ist es das Protokoll Nummer 112.

Entwickelt wurde CARP vom OpenBSD-Team. Die Entwicklung war nötig, weil es (aus patentrechtlichen Gründen) nicht möglich ist, im Rahmen eines Open-Source-Projektes VRRP einzusetzen. Dadurch war es nötig, ein eigenes Protokoll zu schreiben. Zusätzlich konnten so grundlegende Fehler von VRRP und HSRP vermieden werden. Die erste OpenBSD-Version, bei der CARP integriert war, war Version 3.5.

Inzwischen ist CARP auch auf andere Plattformen portiert worden. Eine freie Userland-Portierung ist UCARP (zurzeit erhältlich für Linux 2.4/2.6, OpenBSD und NetBSD). Für DragonFlyBSD, FreeBSD und NetBSD existieren Kernel-Implementierungen.

Abgrenzung zu VRRP

Die grundsätzliche Aufgabe und Funktionsweise von CARP ähnelt VRRP. Es gibt aber einige grundlegende Unterschiede:

  • Der wichtigste Vorteil von CARP ist, dass es, im Gegensatz zu VRRP, patentfrei von jedermann genutzt werden kann.
  • Ein grundsätzlicher Unterschied zu VRRP ist die protokollunabhänge Arbeitsweise von CARP. Damit ist CARP für IPv4 und IPv6 nutzbar.
  • Des Weiteren wurde bei der Entwicklung von CARP sehr viel Wert auf Sicherheit gelegt, so sind beispielsweise die zwischen den Cluster-Rechnern ausgetauschten Nachrichten prinzipiell kryptographisch mit SHA-1 bzw. HMAC signiert.
  • CARP nutzt ein Feature namens arpbalance. Dabei nutzen alle Rechner dieselbe virtuelle IP-Adresse, aber jeder Rechner bekommt noch eine eigene virtuelle MAC-Adresse. Dadurch ist Lastverteilung zwischen den Rechnern möglich. Dieses Merkmal funktioniert bisher nur unter OpenBSD, userland CARP (UCARP) implementiert diese Funktion für andere Plattformen, z.B. Linux bisher nicht.

Funktionsweise

Um CARP zu nutzen, braucht man mindestens zwei Systeme, die die gleiche Aufgabe erfüllen und im selben Subnetz liegen. Diese Systeme haben jeweils eine eindeutige IP- und MAC-Adresse und bilden einen Cluster. Zusätzlich wird diesem Cluster jetzt eine virtuelle IP- und MAC-Adresse zugewiesen. Über diese virtuelle IP/MAC kommuniziert der Cluster mit anderen Systemen. Damit das funktioniert, wird ein Cluster-Rechner Master und die anderen Slaves, wobei der Master die Kommunikation mit der Außenwelt übernimmt. Über das CARP-Protokoll stellt jedes Cluster-Mitglied sicher, dass die anderen Maschinen noch arbeiten. Wenn der Master ausfällt, übernimmt einer der Slaves sowohl die virtuelle MAC-Adresse als auch die virtuelle IP-Adresse.

Besonders interessant ist CARP im Zusammenhang mit hoch verfügbaren Firewalls. Dabei ist es zusätzlich nötig, die Zustandstabellen zu synchronisieren, um Verluste von Verbindungen bei Ausfall des aktiven Cluster-Rechners zu verhindern. Bei der Kombination OpenBSD/pf wird hierfür pfsync eingesetzt, unter Linux/Netfilter ist diese Funktion mit conntrackd umsetzbar.

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Common address redundancy protocol — ou CARP est un protocole permettant à un groupe d hôtes sur un même segment réseau de partager une adresse IP. Le nom CARP est en fait un sigle signifiant « Common Address Redundancy Protocol » (Protocole Commun De Redondance D Adresse) …   Wikipédia en Français

  • Common Address Redundancy Protocol — ou CARP est un protocole permettant à un groupe d hôtes sur un même segment réseau de partager une adresse IP. Le nom CARP est en fait un sigle signifiant « Common Address Redundancy Protocol » (Protocole Commun De Redondance D Adresse) …   Wikipédia en Français

  • Common Address Redundancy Protocol — The Common Address Redundancy Protocol or CARP is a protocol which allows multiple hosts on the same local network to share a set of IP addresses. Its primary purpose is to provide failover redundancy, especially when used with firewalls and… …   Wikipedia

  • Common Address Redundancy Protocol — …   Википедия

  • Virtual Router Redundancy Protocol — (VRRP) is a non proprietary redundancy protocol described in RFC 3768 designed to increase the availability of the default gateway servicing hosts on the same subnet. This increased reliability is achieved by advertising a virtual router (an… …   Wikipedia

  • Virtual Router Redundancy Protocol — VRRP (Virtual Router Redundancy Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Hochverfügbarkeit von Routern VRRP im TCP/IP Protokollstapel Vermittlung VRRP IP …   Deutsch Wikipedia

  • Virtual Router Redundancy Protocol — (VRRP) es un protocolo de redundancia no propietario definido en el RFC 3768 diseñado para aumentar la disponibilidad de la puerta de enlace por defecto dando servicio a máquinas en la misma subred. El aumento de fiabilidad se consigue mediante… …   Wikipedia Español

  • Common Object Request Broker Architecture — The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together (i.e., it… …   Wikipedia

  • MAC address — This article is about a network addressing standard. For the Apple computer product, see Macintosh. For other similar terms, see Mac. A Media Access Control address (MAC address) is a unique identifier assigned to network interfaces for… …   Wikipedia

  • Hot Standby Router Protocol — (HSRP) is a Cisco proprietary redundancy protocol for establishing a fault tolerant default gateway, and has been described in detail in RFC 2281. The Virtual Router Redundancy Protocol (VRRP) is a standards based alternative to HSRP defined in… …   Wikipedia