Common Address Redundancy Protocol: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „{| class="wikitable float-right" style="margin-top:0;" |- ! colspan="2" style="background:#C0C0FF; font-size:larger;"| CARP (Common Address Redundancy Protocol) |- | '''Familie:''' | Internetprotokollfamilie |- | '''Einsatzgebiet:''' | Steigerung der Verfügbarkeit<br /> von Gateways |- |colspan="2"| {{Netzwerk-UDP-IP-Anwendungsprotokoll|CARP|2=Class="center"}} |- | '''Standards:''' | |} Das '''Common Address Redundancy Prot…“ |
K Textersetzung - „float-right“ durch „float“ |
||
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{| class="wikitable float | '''Common Address Redundancy Protocol''' ('''CARP''') - [[Netzwerkprotokoll]] zur Erhöhung der [[Verfügbarkeit]] von [[Internet Protocol|IP]]-Systemen | ||
== Beschreibung == | |||
{| class="wikitable float" style="margin-top:0;" | |||
|- | |- | ||
! colspan="2" style="background:#C0C0FF; font-size:larger;"| CARP (Common Address Redundancy Protocol) | ! colspan="2" style="background:#C0C0FF; font-size:larger;"| CARP (Common Address Redundancy Protocol) | ||
|- | |- | ||
| '''Familie:''' | | '''Familie:''' | ||
| [[ | | [[Internetprotokolle]] | ||
|- | |- | ||
| '''Einsatzgebiet:''' | | '''Einsatzgebiet:''' | ||
Zeile 15: | Zeile 18: | ||
|- | |- | ||
| '''Standards:''' | | '''Standards:''' | ||
| | | | ||
|} | |} | ||
Das '''Common Address Redundancy Protocol''' ('''CARP''') ist ein [[Netzwerkprotokoll]], mit dessen Hilfe sich die [[Verfügbarkeit]] von [[Internet Protocol|IP]]-Systemen erhöhen lässt. Dies wird dadurch erreicht, dass mehrere Rechner innerhalb eines lokalen Netzes dieselben virtuellen [[IP-Adresse|IP]]-/[[MAC-Adresse]]n für die Kommunikation mit anderen Systemen nutzen können. Haupteinsatzgebiet von CARP ist die Erstellung [[Hochverfügbarkeit|hochverfügbarer]] [[Gateway (Informatik)|Gateways]] ([[Router]]/[[Firewall]]); mit CARP lassen sich aber auch Applikationsserver hochverfügbar machen. In der [[ | Das '''Common Address Redundancy Protocol''' ('''CARP''') ist ein [[Netzwerkprotokoll]], mit dessen Hilfe sich die [[Verfügbarkeit]] von [[Internet Protocol|IP]]-Systemen erhöhen lässt. | ||
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|Open-Source]]-Projektes [[Virtual Router Redundancy Protocol|VRRP]] einzusetzen. Dadurch war es nötig, ein eigenes Protokoll zu schreiben. Zusätzlich konnten auf diese Weise grundlegende Fehler des VRRP und [[Hot Standby Router Protocol|HSRP]] vermieden werden. Die erste OpenBSD-Version, bei der CARP integriert war, war Version 3.5. | * Dies wird dadurch erreicht, dass mehrere Rechner innerhalb eines lokalen Netzes dieselben virtuellen [[IP-Adresse|IP]]-/[[MAC-Adresse]]n für die Kommunikation mit anderen Systemen nutzen können. | ||
* Haupteinsatzgebiet von CARP ist die Erstellung [[Hochverfügbarkeit|hochverfügbarer]] [[Gateway (Informatik)|Gateways]] ([[Router]]/[[Firewall]]); mit CARP lassen sich aber auch Applikationsserver hochverfügbar machen. | |||
* In der [[Internetprotokolle]] 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|Open-Source]]-Projektes [[Virtual Router Redundancy Protocol|VRRP]] einzusetzen. | |||
* Dadurch war es nötig, ein eigenes Protokoll zu schreiben. | |||
* Zusätzlich konnten auf diese Weise grundlegende Fehler des VRRP und [[Hot Standby Router Protocol|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 [[Ring (CPU)|Userland]]-Portierung ist UCARP (zurzeit erhältlich für [[Linux]] 2.4/2.6, OpenBSD und [[NetBSD]]). Für [[DragonFly BSD]], [[FreeBSD]] | ; Inzwischen ist CARP auch auf andere Plattformen portiert worden. | ||
* Eine freie [[Ring (CPU)|Userland]]-Portierung ist UCARP (zurzeit erhältlich für [[Linux]] 2.4/2.6, OpenBSD und [[NetBSD]]). | |||
* Für [[DragonFly BSD]], [[FreeBSD]] und NetBSD existieren [[Kernel (Betriebssystem)|Kernel]]-Implementierungen. | |||
== Abgrenzung zu VRRP == | == Abgrenzung zu VRRP == | ||
; Aufgabe und Funktionsweise von CARP ähnelt [[VRRP]] | |||
; Unterschiede | |||
* Der wichtigste Vorteil von CARP ist, dass es, im Gegensatz zu VRRP, [[patent]]frei von jedermann genutzt werden kann. | * Der wichtigste Vorteil von CARP ist, dass es, im Gegensatz zu VRRP, [[patent]]frei 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. | * Ein grundsätzlicher Unterschied zu VRRP ist die protokollunabhänge Arbeitsweise von CARP. | ||
* Des Weiteren wurde bei der Entwicklung von CARP sehr viel Wert auf Sicherheit gelegt, so sind beispielsweise die zwischen den [[Rechnerverbund|Cluster]]-Rechnern ausgetauschten Nachrichten prinzipiell [[ | * Damit ist CARP für [[IPv4]] und [[IPv6]] nutzbar. | ||
* 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 (Informatik)|Lastverteilung]] zwischen den Rechnern möglich. Dieses Merkmal funktioniert bisher nur unter [[OpenBSD]] sowie auf [[FreeBSD]] bis Version 9.3 | * Des Weiteren wurde bei der Entwicklung von CARP sehr viel Wert auf Sicherheit gelegt, so sind beispielsweise die zwischen den [[Rechnerverbund|Cluster]]-Rechnern ausgetauschten Nachrichten prinzipiell [[Kryptografie|kryptographisch]] mit [[Secure Hash Algorithm|SHA-1]] bzw. [[Keyed-Hash Message Authentication Code|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 (Informatik)|Lastverteilung]] zwischen den Rechnern möglich. | |||
* Dieses Merkmal funktioniert bisher nur unter [[OpenBSD]] sowie auf [[FreeBSD]] bis Version 9.3, userland CARP (UCARP) implementiert diese Funktion für andere Plattformen, z. B. [[Linux]] bisher nicht. | |||
== Funktionsweise == | == Funktionsweise == | ||
; Mindestens zwei Systeme | |||
Welche 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 hochverfü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 (Paketfilter)|pf]] wird hierfür pfsync eingesetzt, unter [[Linux]]/[[Netfilter]] ist diese Funktion mit conntrackd umsetzbar. | |||
== | <noinclude> | ||
< | == Anhang == | ||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
==== Sicherheit ==== | |||
==== Dokumentation ==== | |||
==== Links ==== | |||
===== Projekt ===== | |||
===== Weblinks ===== | |||
# [http://www.openbsd.org/cgi-bin/man.cgi?query=carp&sec=4 Man page-Eintrag Beschreibung der Original OpenBSD-Implementation] | |||
# https://ucarp.wordpress.com/ | |||
# [http://www.kernel-panic.it/openbsd/carp/carp4.html Firewall Failover with pfsync and CARP] ([[OpenBSD]]) | |||
</noinclude> | |||
[[Kategorie: | [[Kategorie:IP]] | ||
[[Kategorie:OpenBSD]] | [[Kategorie:OpenBSD]] | ||
[[Kategorie:FreeBSD]] | [[Kategorie:FreeBSD]] |
Aktuelle Version vom 22. Februar 2024, 11:21 Uhr
Common Address Redundancy Protocol (CARP) - Netzwerkprotokoll zur Erhöhung der Verfügbarkeit von IP-Systemen
Beschreibung
CARP (Common Address Redundancy Protocol) | |
---|---|
Familie: | Internetprotokolle |
Einsatzgebiet: |
Steigerung der Verfügbarkeit |
Standards: |
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 Internetprotokolle 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 auf diese Weise grundlegende Fehler des 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 DragonFly BSD, FreeBSD und NetBSD existieren Kernel-Implementierungen.
Abgrenzung zu VRRP
- Aufgabe und Funktionsweise von CARP ähnelt VRRP
- 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 sowie auf FreeBSD bis Version 9.3, userland CARP (UCARP) implementiert diese Funktion für andere Plattformen, z. B. Linux bisher nicht.
Funktionsweise
- Mindestens zwei Systeme
Welche 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 hochverfü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.