ARP-Grundlagen und Spoofing

Funktionsbeispiele

Rechner A hat die IP-Adresse 192.168.20.10/24, Rechner B die IP-Adresse 192.168.20.20/24. Beide Rechner befinden sich entsprechend im gleichen Netzwerksegment. Will Rechner A Daten an Rechner B senden, sucht er zuerst im eigenen ARP-Cache, ob ein Eintrag von Rechner B bereits vorhanden ist. Ist das der Fall, versendet er das Paket direkt an die hinterlegte MAC-Adresse.

Andernfalls startet Rechner A einen Rundruf (Broadcast) an alle Hosts im gleichen Netzwerksegment "Who has 192.168.20.20". Ist der Zielrechner im Netzwerk online, sendet dieser ein an den Fragesteller gerichtetes ARP-Reply, in dem er ihm die MAC-Adresse mitteilt. Erst danach beginnt der eigentliche Datentransfer.

Etwas komplizierter gestaltet sich die Kommunikation von Hosts, die sich nicht im gleichen IP-Netzwerksegment befinden. In diesem Fall durchsucht der IP-Stack zuerst die Routing-Tabelle nach dem Gateway, an den das Paket gesendet wird. Im nächsten Schritt löst ARP die IP-Adresse des zuständigen Routers abermals mit einem "who has" auf, nicht jedoch die Adresse des eigentlichen Empfängers. Das übernimmt im Anschluss der Router, der für das Netzwerksegment zuständig ist, in dem sich der eigentliche Empfänger befindet.

Wie im Diagramm dargestellt, baut Host A (192.168.20.10/24) eine Verbindung zu Host C (192.168.10.10/24) auf. In diesem Fall wird Host A keinen ARP-Request ("who has 192.168.10.10") stellen, sondern die Verbindungsanfrage an den Router weiterleiten, der laut seiner Routingtabelle dafür zuständig ist. Diesen löst der Versender-Host jedoch mit einem ARP-Request ("who has 192.168.20.254") auf.

Für die weitere Adressierung ist im Anschluss der Router zuständig, indem er im für ihn zuständigen IP-Netzwerksegment den Rundruf "Who has 192.168.10.10" startet. Läuft die Kommunikation über mehrere Router im Ethernet, verfährt jeder weitere wie Rechner A; er leitet die Anfrage an das zuständige Gateway weiter, das für das entsprechende Netzwerksegment zuständig ist.