3.7 ARP - Anfrage und Reply
Das Address Resolution Protocol ermittelt zu einer IPv4-Adresse die passende lokale Hardwareadresse. Erst dadurch kann ein IPv4-Paket innerhalb eines Ethernet-Netzes in einen Frame für den nächsten direkten Kommunikationspartner gekapselt werden. ARP wirkt damit an der Grenze zwischen Vermittlungs- und Sicherungsschicht; in diesem Lernpfad steht es bei Layer 2, weil sein praktischer Zweck die lokale Layer-2-Zustellung ist.
Warum IPv4 im lokalen Netz ARP benötigt
Anwendungen und Transportprotokolle kommunizieren über IP-Adressen. Ein Ethernet-Frame benötigt auf dem lokalen Link dagegen eine Quell- und Ziel-MAC-Adresse. Bevor ein Host ein IPv4-Paket über Ethernet versenden kann, muss er deshalb die IPv4-Adresse des nächsten direkten Kommunikationspartners einer MAC-Adresse zuordnen.
ARP arbeitet nur innerhalb des lokalen Layer-2-Broadcastbereichs. Router leiten gewöhnliche ARP-Anfragen nicht weiter. Für ein Ziel in einem entfernten IPv4-Netz wird daher nicht die MAC-Adresse des entfernten Endgeräts gesucht, sondern die MAC-Adresse des lokalen Next Hops - normalerweise des Default Gateways.
| Ziel laut Routingentscheidung | ARP sucht die MAC-Adresse von | Ethernet-Ziel |
|---|---|---|
| Ziel liegt im eigenen Subnetz | IPv4-Adresse des Zielhosts | MAC-Adresse des Zielhosts |
| Ziel liegt in einem entfernten Netz | IPv4-Adresse des gewählten Next Hops | MAC-Adresse des Routers beziehungsweise Next Hops |
| passender Eintrag bereits vorhanden | keine neue Anfrage erforderlich | gespeicherte MAC-Adresse aus der Nachbartabelle |
ARP Request und ARP Reply
Kennt Host A die MAC-Adresse zu einer lokalen IPv4-Adresse noch nicht, sendet er einen ARP Request in einem Ethernet-Frame mit der Zieladresse ff:ff:ff:ff:ff:ff. Dadurch prüfen alle Geräte im Broadcastbereich die Anfrage. Der Request lässt sich sinngemäß lesen als: „Wer besitzt 192.0.2.20? Antworte 192.0.2.10.“
Host B erkennt seine eigene IPv4-Adresse im Target Protocol Address-Feld und antwortet mit einem ARP Reply. Dieser wird im Normalfall als Ethernet-Unicast an Host A gesendet. Die Antwort teilt die Zuordnung 192.0.2.20 zu 02:00:00:00:00:20 mit. Host A kann sie in seiner Nachbartabelle speichern und danach den eigentlichen IPv4-Datenverkehr senden.
| Nachricht | Ethernet-Ziel | Kernaussage |
|---|---|---|
| ARP Request | ff:ff:ff:ff:ff:ff | gesuchte IPv4-Adresse ist bekannt, zugehörige MAC-Adresse wird angefragt |
| ARP Reply | gewöhnlich MAC-Adresse des Fragestellers | Besitzer nennt seine IPv4-/MAC-Zuordnung |
Die vier Adressfelder richtig lesen
ARP bezeichnet IPv4-Adressen als Protocol Addresses und MAC-Adressen als Hardware Addresses. Sowohl Request als auch Reply enthalten Sender Hardware Address, Sender Protocol Address, Target Hardware Address und Target Protocol Address. Entscheidend ist, aus wessen Sicht die Felder gelesen werden: Sender bezeichnet immer den Erzeuger der jeweiligen ARP-Nachricht.
Im Request kennt Host A seine eigene IPv4- und MAC-Adresse sowie die gesuchte IPv4-Adresse von Host B. Die Target Hardware Address ist noch unbekannt und wird bei Ethernet mit 00:00:00:00:00:00 belegt. Im Reply ist Host B der Sender und trägt deshalb seine Daten in die Senderfelder ein; die Daten von Host A stehen nun in den Targetfeldern.
| ARP-Feld | Request von Host A | Reply von Host B |
|---|---|---|
| Sender Hardware Address | MAC von Host A | MAC von Host B |
| Sender Protocol Address | IPv4 von Host A | IPv4 von Host B |
| Target Hardware Address | 00:00:00:00:00:00 - noch unbekannt | MAC von Host A |
| Target Protocol Address | IPv4 von Host B - gesucht | IPv4 von Host A |
Aufbau einer ARP-Nachricht
Eine ARP-Nachricht für Ethernet und IPv4 ist 28 Byte groß. Sie wird direkt in einem Ethernet-Frame mit dem EtherType 0x0806 transportiert und besitzt keinen IPv4-Header. Genau deshalb ist ARP nicht einfach ein gewöhnliches Layer-3-Protokoll, obwohl es IPv4-Adressen als Protocol Addresses verarbeitet.
| Feld | Länge bei Ethernet/IPv4 | Bedeutung / typischer Wert |
|---|---|---|
| Hardware Type | 16 Bit | 1 für Ethernet |
| Protocol Type | 16 Bit | 0x0800 für IPv4 |
| Hardware Address Length | 8 Bit | 6 Byte für eine Ethernet-MAC-Adresse |
| Protocol Address Length | 8 Bit | 4 Byte für eine IPv4-Adresse |
| Operation | 16 Bit | 1 = Request, 2 = Reply |
| Sender Hardware Address | 48 Bit | MAC-Adresse des ARP-Senders |
| Sender Protocol Address | 32 Bit | IPv4-Adresse des ARP-Senders |
| Target Hardware Address | 48 Bit | gesuchte oder bekannte MAC-Adresse des Ziels |
| Target Protocol Address | 32 Bit | IPv4-Adresse des ARP-Ziels |
ARP- beziehungsweise Nachbartabelle
Gelernte Zuordnungen werden für eine begrenzte Zeit in einer ARP- oder Nachbartabelle gespeichert. Dadurch muss nicht vor jedem IPv4-Paket erneut ein Broadcast gesendet werden. Dynamische Einträge besitzen Zustände und Zeitgeber; das konkrete Verhalten unterscheidet sich zwischen Betriebssystemen.
Ein gespeicherter Eintrag ist kein dauerhafter Beweis für die Identität eines Geräts. Er beschreibt die momentan angenommene Zuordnung auf einem bestimmten Interface. Nach Ablauf, Änderung oder fehlender Erreichbarkeit kann das System die Zuordnung erneut prüfen.
- Ein Ping kann eine ARP-Auflösung auslösen, sofern das Ziel beziehungsweise der Next Hop lokal erreichbar sein soll.
- Fehlt der Nachbareintrag dauerhaft im Zustand INCOMPLETE oder FAILED, sind VLAN, Link, IPv4-Konfiguration, Zielerreichbarkeit und Filterregeln zu prüfen.
- Statische Einträge sind für Sonderfälle möglich, erhöhen aber den Verwaltungsaufwand und beheben keine falsche Netzplanung.
| System | Kompakter Prüfweg | Zweck |
|---|---|---|
| Windows | arp -a | aktuelle ARP-Einträge aller beziehungsweise ausgewählter Interfaces anzeigen |
| Windows | Get-NetNeighbor -AddressFamily IPv4 | IPv4-Nachbarn mit Interface und Zustand in PowerShell anzeigen |
| Linux | ip neigh show | Nachbartabelle einschließlich Zuständen anzeigen |
| Linux | ip neigh get 192.0.2.20 dev eth0 | gezielt einen Nachbareintrag auf einem Interface abfragen |
ARP Probe, Announcement und Adresskonflikte
Vor der Verwendung einer IPv4-Adresse kann ein Host mit ARP Probes prüfen, ob die Adresse bereits auf dem Link verwendet wird. Dabei enthält die Sender Protocol Address 0.0.0.0, damit fremde ARP-Caches nicht mit einer noch ungeprüften Zuordnung befüllt werden. Die Target Protocol Address enthält die zu prüfende IPv4-Adresse.
Nach erfolgreicher Prüfung kann ein ARP Announcement die eigene Zuordnung bekannt geben und veraltete Einträge anderer Teilnehmer aktualisieren. Sender und Target Protocol Address enthalten dabei die eigene IPv4-Adresse. Ein Announcement allein ersetzt keine vollständige Konflikterkennung; RFC 5227 beschreibt Probe, Announcement und laufende Konfliktprüfung zusammenhängend.
| Nachricht | Sender IPv4 | Target IPv4 | Zweck |
|---|---|---|---|
| ARP Probe | 0.0.0.0 | zu prüfende Adresse | vor Nutzung erkennen, ob die Adresse bereits belegt ist |
| ARP Announcement | eigene Adresse | eigene Adresse | Zuordnung bekannt geben und Caches aktualisieren |
| gewöhnlicher ARP Request | eigene Adresse | Adresse des gesuchten Nachbarn | MAC-Adresse für lokale Zustellung ermitteln |
Proxy ARP und ARP-Sicherheit
Bei Proxy ARP beantwortet ein Router oder anderes System eine ARP-Anfrage stellvertretend für ein Ziel hinter einem anderen Layer-3-Weg. Der anfragende Host behandelt das Ziel dadurch scheinbar als lokal. Das kann in bestimmten Alt- oder Übergangsszenarien helfen, verschleiert aber Netzgrenzen und sollte nicht mit gewöhnlichem Routing verwechselt werden.
ARP besitzt keine eingebaute Authentisierung. Ein Angreifer oder falsch konfiguriertes Gerät kann gefälschte Zuordnungen verbreiten und Verkehr umleiten oder stören. Dieses Verhalten wird als ARP Spoofing beziehungsweise ARP Poisoning bezeichnet. Switch-Funktionen wie DHCP Snooping und Dynamic ARP Inspection können in verwalteten Netzen helfen, benötigen aber eine korrekte Vertrauens- und Portkonfiguration.
- Unerwartete oder häufig wechselnde MAC-Zuordnungen untersuchen, statt nur den Cache wiederholt zu löschen.
- Statische ARP-Einträge skalieren schlecht und sind kein allgemeiner Ersatz für Netzsegmentierung und Switch-Schutzfunktionen.
- Verschlüsselte Anwendungsprotokolle begrenzen die Folgen einer Umleitung, verhindern jedoch nicht die Störung der lokalen Zustellung.
IPv6 verwendet Neighbor Discovery statt ARP
ARP wird für IPv4 verwendet. IPv6 löst lokale Nachbaradressen über das Neighbor Discovery Protocol mit ICMPv6 Neighbor Solicitation und Neighbor Advertisement auf. Dabei kommen gezielte Solicited-Node-Multicastgruppen statt eines Ethernet-Broadcasts an alle Teilnehmer zum Einsatz.
Neighbor Discovery übernimmt zusätzlich Router Discovery, Erreichbarkeitsprüfung, Duplicate Address Detection und weitere Aufgaben. ARP und NDP erfüllen daher bei der Adressauflösung einen ähnlichen Zweck, sind aber weder paketgleich noch vollständig funktionsgleich.
| Aufgabe | IPv4 | IPv6 |
|---|---|---|
| lokale Adressauflösung | ARP Request / Reply | Neighbor Solicitation / Advertisement |
| Anfragezustellung | Ethernet-Broadcast | IPv6-Multicast, meist Solicited-Node-Gruppe |
| Protokolltransport | direkt im Ethernet-Frame, EtherType 0x0806 | ICMPv6 innerhalb eines IPv6-Pakets |
| zusätzliche Funktionen | Adresskonfliktprüfung über ergänzende ARP-Verfahren | unter anderem Router Discovery, DAD und Neighbor Unreachability Detection |
ARP-Fehler systematisch eingrenzen
| Prüfschritt | Leitfrage |
|---|---|
| 1. Routingentscheidung | Gilt das Ziel als lokal oder wird die MAC-Adresse eines Next Hops benötigt? |
| 2. Interface und VLAN | Befinden sich Sender und erwarteter ARP-Partner tatsächlich im selben Layer-2-Broadcastbereich? |
| 3. Request | Ist ein ARP Request mit korrekter Sender- und Target-IPv4-Adresse sichtbar? |
| 4. Reply | Antwortet der Besitzer der Adresse und erreicht der Reply den Fragesteller? |
| 5. Tabelle | Entsteht ein plausibler dynamischer Nachbareintrag auf dem richtigen Interface? |
| 6. Konflikt | Wird dieselbe IPv4-Adresse von mehreren MAC-Adressen beansprucht? |
| 7. Sicherheit | Blockieren Port Security, Dynamic ARP Inspection oder andere Regeln die Nachricht berechtigt oder fehlerhaft? |
Quellen zur fachlichen Prüfung
- RFC Editor: RFC 826 - An Ethernet Address Resolution Protocol
- RFC Editor: RFC 5227 - IPv4 Address Conflict Detection
- RFC Editor: RFC 1122 - Requirements for Internet Hosts - Communication Layers
- RFC Editor: RFC 4861 - Neighbor Discovery for IPv6
- Microsoft Learn: arp command
- Microsoft Learn: Get-NetNeighbor
- Linux iproute2: ip-neighbour manual
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
