Wikipedia · einfach zusammengefasst · Stand
Address Resolution Protocol
Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physische Adresse (Hardware-Adresse) …
Inhalt6 Abschnitte
Aufgabe und Einsatz von ARP
Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll der Internetprotokollfamilie zur Netzwerkadressenzuordnung. Es ermittelt zu einer Netzwerkadresse der Internetschicht die physische Hardware-Adresse der Netzzugangsschicht und kann die Zuordnung in ARP-Tabellen der beteiligten Rechner speichern. Der Standard ist RFC 826 (1982).
ARP wird fast ausschließlich bei IPv4 in Ethernet-Netzen verwendet, um zu einer IP-Adresse die passende MAC-Adresse zu finden. Eine IPv4-Adresse ist 32 Bit lang, eine MAC-Adresse 48 Bit; deshalb gibt es keine feste direkte Zuordnung. Bevor ein Rechner ein IP-Paket innerhalb desselben Subnetzes in einen Ethernet-Frame verpackt, benötigt er die Ziel-MAC-Adresse. Für IPv6 übernimmt nicht ARP, sondern das auf ICMPv6 basierende Neighbor Discovery Protocol (NDP) diese Aufgabe.
Anfrage, Antwort und ARP-Cache
Kennt ein Rechner die Ziel-MAC-Adresse nicht, sendet er einen ARP-Request an alle Rechner des lokalen Netzes. Im Ethernet-Frame steht dafür die Broadcast-Adresse ff-ff-ff-ff-ff-ff₁₆. Der Request enthält die IP- und MAC-Adresse des anfragenden Rechners sowie die IP-Adresse des gesuchten Rechners. Das Feld für dessen Ziel-MAC-Adresse ist meist mit 00-00-00-00-00-00₁₆ gefüllt.
Der Rechner, dessen IP-Adresse angefragt wurde, sendet seine IP- und MAC-Adresse als ARP-Reply zurück, per Broadcast oder Unicast. Der Anfragende speichert die Kombination im ARP-Cache. Auch Empfänger eines Requests können die Absender-Zuordnung speichern oder aktualisieren. Einträge enthalten unter anderem Zuordnung, Zeitpunkt, Gültigkeitsdauer oder Alter und gegebenenfalls den Protokolltyp. Ihre Gültigkeit ist implementierungsabhängig und beträgt meist wenige Minuten; aktuelle Linux-Distributionen löschen sie nach etwa 5 Minuten. Bei Nutzung verlängert sich die Ablaufzeit. Unter Unix und Windows lassen sich Caches mit arp beziehungsweise arp -a anzeigen und manipulieren; arping kann Anfragen manuell versenden.
Bedeutung bei der Weiterleitung
ARP löst IP-Adressen nur im lokalen Netzwerk in MAC-Adressen auf. Erkennt ein Rechner, dass ein IP-Paket nicht für sein lokales Subnetz bestimmt ist, sendet er es an einen lokalen Router. Dessen lokale MAC-Adresse kann ebenfalls mit ARP ermittelt werden. Der Router leitet das Paket weiter; außerhalb des lokalen Netzes können dabei auch Protokolle verwendet werden, die nicht auf MAC-Adressierung beruhen.
Aufbau eines ARP-Pakets
Ein ARP-Paket folgt auf den Ethernet-MAC-Header. Das Typfeld des Ethernet-Frames lautet 0x0806 (2054), wodurch ARP von anderen Protokollen wie IP unterschieden wird. Weil ARP-Pakete kurz sind, werden häufig Padding-Bytes eingefügt, damit ein Ethernet-Frame die Mindestlänge von 64 Bytes erreicht.
Das Paketformat enthält Hardwareadresstyp, Protokolladresstyp, Größen der Hardware- und Protokolladresse, Operation sowie Quell- und Ziel-MAC- und IP-Adresse. Für Ethernet und IPv4 gelten: Hardwareadresstyp 1, Protokolladresstyp 0x0800 (2048), Hardwareadressgröße 6, Protokolladressgröße 4, Operation 1 für Anfrage und 2 für Antwort. Die variablen Typ- und Größenfelder machen ARP grundsätzlich auch für andere Protokolle geeignet.
Besondere ARP-Nachrichten
Bei Proxy ARP beantwortet ein Router ARP-Anforderungen für Hosts in durch ihn getrennten Netzen, die untypischerweise denselben IP-Adressbereich verwenden. Fragt Computer A nach Computer B, antwortet der Router mit der MAC-Adresse seines empfangenden Ports. A sendet die Daten dann an den Router, der sie an B weiterleitet. Mehrere IP-Adressen mit derselben MAC-Adresse im ARP-Cache können auf Proxy ARP, aber auch auf ARP-Spoofing hinweisen.
Gratuitous ARP ist ein Broadcast, bei dem ein Host seine eigene IP-Adresse zugleich als Quell- und Ziel-IP-Adresse einträgt. Er informiert andere Hosts etwa nach einem Austausch der Netzwerkkarte über eine neue MAC-Adresse; deshalb geschieht dies normalerweise beim Booten. Eine Antwort weist darauf hin, dass die IP-Adresse bereits verwendet wird. Es dient außerdem beim Umschalten zwischen aktivem Server und Ersatzserver sowie in Mobile-IP-Szenarien.
RARP (Reverse-ARP) arbeitet umgekehrt und löst MAC-Adressen in IP-Adressen auf. Es hilft Geräten ohne dauerhafte Speicherung oder Zuweisung einer Adresse, ihre eigene IP-Adresse zu ermitteln. RARP und ARP haben dasselbe Paketformat, aber unterschiedliche Anwendungsbereiche.
Fehlerquellen und ARP-Spoofing
Falsche ARP-Cache-Einträge können die Kommunikation mit einem Host verhindern, solange sie bestehen. Besonders problematisch ist, dass manche Systeme Daten aus ARP-Paketen auch ohne vorherige Anfrage speichern. Antwortet ein überlasteter Host mit einer alten IP-Adresse zuletzt auf eine Anfrage, kann seine falsche Antwort die ARP-Tabellen der Geräte im Netz überschreiben.
ARP-Spoofing verteilt absichtlich falsche MAC-/IP-Kombinationen. Dadurch kann Datenverkehr zu einem anderen Rechner umgeleitet und möglicherweise verändert werden; dies ermöglicht einen Man-in-the-Middle-Angriff. Moderne Implementierungen ändern die ARP-Tabelle nur bei Antworten, für die zuvor eine Anfrage an den betreffenden Host erzeugt wurde.