GARP
GARP (Gratuitous ARP) ist eine spezielle Variante des Address Resolution Protocol (ARP), bei der ein Gerät unaufgefordert seine eigene IP-zu-MAC-Zuordnung im Netzwerk bekanntgibt. Im Gegensatz zum normalen ARP, das auf eine Anfrage wartet, sendet GARP proaktiv Informationen an alle Geräte im lokalen Netzwerk.
Der Begriff "gratuitous" bedeutet hier "unaufgefordert" oder "freiwillig". GARP wird nicht durch eine ARP-Anfrage eines anderen Geräts ausgelöst, sondern von einem Host selbstständig gesendet. Diese Technik ist in RFC 826 (ARP-Grundlagen) und RFC 5227 (IPv4 Address Conflict Detection) beschrieben.
Unterschied zwischen normalem ARP und GARP
Bei einem normalen ARP-Vorgang fragt ein Gerät aktiv nach der MAC-Adresse eines anderen Geräts. Der Ablauf sieht so aus: Computer A kennt die IP-Adresse von Computer B, benötigt aber dessen MAC-Adresse für die Kommunikation auf Schicht 2. Also sendet A einen ARP-Request als Broadcast, und B antwortet mit seiner MAC-Adresse.
Bei GARP hingegen fragt ein Gerät gewissermaßen "nach sich selbst". Es sendet ein ARP-Paket, bei dem sowohl die Sender-IP als auch die Ziel-IP identisch sind - nämlich die eigene IP-Adresse. Das Gerät erwartet keine Antwort, sondern informiert alle anderen Geräte im Netzwerk über seine aktuelle IP-zu-MAC-Zuordnung.
| Eigenschaft | Normales ARP | Gratuitous ARP |
|---|---|---|
| Auslöser | Anfrage eines anderen Geräts | Selbstständig gesendet |
| Sender-IP | Eigene IP-Adresse | Eigene IP-Adresse |
| Ziel-IP | IP des gesuchten Geräts | Eigene IP-Adresse |
| Ziel-MAC | Broadcast (ff:ff:ff:ff:ff:ff) | Broadcast (ff:ff:ff:ff:ff:ff) |
| Erwartete Antwort | Ja (ARP-Reply) | Nein |
Der entscheidende Unterschied liegt also in der Intention: Normales ARP dient der Adressauflösung, während GARP zur Bekanntmachung oder Aktualisierung von Adresszuordnungen verwendet wird.
Funktionsweise von GARP
Ein GARP-Paket ist technisch gesehen ein normales ARP-Paket mit einer besonderen Konfiguration. Der sendende Host setzt seine eigene IP-Adresse sowohl als Sender-IP als auch als Ziel-IP ein. Die Ziel-MAC-Adresse ist entweder die Broadcast-Adresse (ff:ff:ff:ff:ff:ff) oder bleibt leer (00:00:00:00:00:00).
Wenn andere Geräte dieses GARP-Paket empfangen, aktualisieren sie automatisch ihren ARP-Cache. Sie speichern die neue Zuordnung zwischen IP-Adresse und MAC-Adresse des Senders. Bei Switches führt GARP zusätzlich dazu, dass die MAC-Adresstabelle (CAM-Tabelle) aktualisiert wird. Der Switch lernt, an welchem Port sich die MAC-Adresse nun befindet.
Einsatzgebiete von GARP
GARP erfüllt mehrere wichtige Funktionen in Netzwerken. Die häufigsten Anwendungsfälle sind die Erkennung von IP-Konflikten, Failover-Szenarien in Hochverfügbarkeitsumgebungen und die Aktualisierung von Netzwerktabellen nach Hardware-Änderungen.
Erkennung von IP-Adresskonflikten
Wenn ein Gerät eine neue IP-Adresse konfiguriert oder seine Netzwerkschnittstelle aktiviert, sendet es oft ein GARP-Paket. Damit prüft es, ob bereits ein anderes Gerät im Netzwerk dieselbe IP-Adresse verwendet. Falls ein anderes Gerät antwortet oder ebenfalls ein GARP für diese IP sendet, liegt ein IP-Konflikt vor. Das Gerät kann dann eine Warnung ausgeben oder eine andere Adresse anfordern.
Dieser Mechanismus wird als Duplicate Address Detection (DAD) bezeichnet und ist besonders wichtig, wenn IP-Adressen manuell vergeben werden. Bei der automatischen Vergabe durch DHCP prüft der Server normalerweise vor der Zuweisung, ob eine Adresse frei ist.
Failover in Hochverfügbarkeitsumgebungen
In Hochverfügbarkeitslösungen (High Availability) teilen sich mehrere Server eine virtuelle IP-Adresse (VIP). Nur der aktive Server bedient Anfragen für diese Adresse. Wenn der aktive Server ausfällt, übernimmt ein Standby-Server die VIP. Damit der Datenverkehr sofort zum neuen aktiven Server geleitet wird, sendet dieser ein GARP-Paket.
Protokolle wie VRRP (Virtual Router Redundancy Protocol) und HSRP (Hot Standby Router Protocol) nutzen GARP intensiv. Nach einem Failover aktualisiert das GARP-Paket die ARP-Caches aller Geräte im Netzwerk. Ohne GARP müssten die Geräte warten, bis ihre alten ARP-Einträge ablaufen, was zu Verbindungsunterbrechungen führen würde.
Hardware-Änderungen und Netzwerk-Umzüge
Wenn du die Netzwerkkarte eines Servers austauschst, ändert sich dessen MAC-Adresse, während die IP-Adresse gleich bleibt. Andere Geräte im Netzwerk haben noch die alte MAC-Adresse im Cache gespeichert und können den Server nicht mehr erreichen. Ein GARP-Paket informiert alle Geräte über die neue Zuordnung.
Ähnlich verhält es sich, wenn ein Server physisch an einen anderen Switch-Port umgesteckt wird. Der Switch muss lernen, dass die MAC-Adresse nun an einem anderen Port erreichbar ist. GARP sorgt dafür, dass die CAM-Tabelle des Switches sofort aktualisiert wird.
GARP in der Praxis beobachten
Mit Netzwerkanalyse-Tools wie Wireshark kannst du GARP-Pakete im Netzwerk beobachten. Ein typisches GARP erkennst du daran, dass Sender-IP und Ziel-IP identisch sind. Wireshark zeigt diese Pakete oft mit dem Hinweis "Gratuitous ARP" an.
# Beispiel eines GARP-Pakets in Wireshark:
Opcode: request (1)
Sender MAC address: 00:1a:2b:3c:4d:5e
Sender IP address: 192.168.1.100
Target MAC address: 00:00:00:00:00:00
Target IP address: 192.168.1.100 <- Identisch mit Sender-IP
Du kannst GARP auch manuell auslösen. Unter Linux verwendest du dafür das Tool arping:
# GARP senden unter Linux
sudo arping -A -I eth0 192.168.1.100
# -A: Gratuitous ARP Reply senden
# -I eth0: Netzwerkschnittstelle angeben
Sicherheitsaspekte von GARP
GARP kann sowohl für legitime Zwecke als auch für Angriffe verwendet werden. Da ARP keine Authentifizierung bietet, akzeptieren Geräte jedes GARP-Paket ohne Prüfung. Ein Angreifer kann gefälschte GARP-Pakete senden und behaupten, eine bestimmte IP-Adresse gehöre zu seiner MAC-Adresse. Dieser Angriff nennt sich ARP-Spoofing oder ARP-Poisoning.
Um solche Angriffe zu erkennen und zu verhindern, gibt es verschiedene Schutzmaßnahmen:
- Dynamic ARP Inspection (DAI): Managed Switches prüfen ARP-Pakete gegen eine Datenbank erlaubter IP-zu-MAC-Zuordnungen
- Statische ARP-Einträge: Für kritische Systeme wie Server oder Gateways können feste Einträge im ARP-Cache konfiguriert werden
- Port Security: Switches können die erlaubten MAC-Adressen pro Port einschränken
- Netzwerksegmentierung: VLANs begrenzen die Reichweite von ARP-Paketen auf das jeweilige Segment
GARP und IPv6
Bei IPv6 existiert GARP in dieser Form nicht. Stattdessen übernimmt das Neighbor Discovery Protocol (NDP) ähnliche Funktionen. NDP verwendet ICMPv6-Nachrichten wie Neighbor Solicitation und Neighbor Advertisement. Die IPv6-Variante der Duplicate Address Detection ist direkt in das Protokoll integriert und wird automatisch bei der Adresskonfiguration durchgeführt.
Quellen und weiterführende Links
- RFC 826 - Ethernet Address Resolution Protocol - Offizielle ARP-Spezifikation
- RFC 5227 - IPv4 Address Conflict Detection - Beschreibt Duplicate Address Detection
- Wireshark Wiki: Gratuitous ARP - Technische Details und Paketanalyse
- Practical Networking: Gratuitous ARP - Praxisnahe Erklärung mit Beispielen