07. ARP
Wie ein Protokoll zwischen Adresstypen vermittelt
Um über ein Netzwerk kommunizieren zu können, müssen Hosts die Hardware-Adresse anderer Hosts kennen. Bei der Adressauswertung wird die IP-Adresse eines Hosts seiner entsprechenden Hardware-Adresse (MAC) zugeordnet. Das ARP (Address Resolution Protocol), das Teil der TCP/IP-Protokollfamilie ist, organisiert den Austausch der Hardware~Adressen der im selben physischen Netzwerk befindlichen Hosts.
Der PC möchte an den Server Daten übermitteln. Vorher erfolgt auf der Senderseite zuerst eine Überprüfung des lokalen
ARP-cache. Dabei untersucht der PC, ob im Cache die Ziel-IP-Adresse zugehörige Hardware-Adresse bereits gespeichert ist.
Ist dies der Fall, leitet der Sender das Datenpaket mit der IP- und der MAC-Adresse des Zielrechners weiter.
Kann die MAC-Adresse des Zielrechners im ARP-Cache nicht gefunden werden, so übermittelt der Sender einen ARP-Request
per Broadcast in das Netz. Dieses Broadcast-Paket wird von sämtlichen Endgeräten im lokalen LAN gelesen. Erkennt einer
der Rechner seine eigene IP-Adresse im ARP-Request, bearbeitet er das Paket weiter. Mit einem ARP-Reply sendet der
betreffende Rechner seine eigene MAC-Adresse an den ursprünglichen Sender per Unlcast-Paket zurück. Dieser legt nach dem
Empfang des ARP-Reply die darin enthaltene Adressinformation in seiner lokalen ARP-Tabelle ab.
Erst nach vollständigem Abschluss des .ARP-Prozesses kann der PC die betreffenden Datenpakete an den Server
(Zielrechner) über das Netz transportieren.
Ablauf einer ARP-Adressauflösung
Quelle: https://www.elektronik-kompendium.de/sites/net/0901061.htm
Eine ARP-Auflösung unterscheidet zwischen lokalen IP-Adressen und IP-Adressen in einem anderen Subnetz. Als erstes wird anhand der Subnetzmaske festgestellt, ob sich die IP-Adresse im gleichen Subnetz befindet. Ist das der Fall, wird im ARP-Cache geprüft, ob bereits eine MAC-Adresse für die IP-Adresse hinterlegt ist. Wenn ja, dann wird die MAC-Adresse zur Adressierung verwendet. Wenn nicht, setzt ARP eine Anfrage mit der IP-Adresse nach der Hardware-Adresse in das Netzwerk. Diese Anfrage wird von allen Stationen im selben Subnetz entgegengenommen und ausgewertet. Die Stationen vergleichen die gesendete IP-Adresse mit ihrer eigenen. Wenn sie nicht übereinstimmt, wird die Anfrage verworfen. Wenn die IP-Adresse übereinstimmt schickt die betreffende Station eine ARP-Antwort direkt an den Sender der ARP-Anfrage. Dieser speichert die Hardware-Adresse in seinem Cache. Da bei beiden Stationen die Hardware-Adresse bekannt sind, können sie nun miteinander Daten austauschen.
Befindet sich eine IP-Adresse nicht im gleichen Subnetz, geht ARP über das Standard-Gateway. Findet ARP die
Hardware-Adresse des Standard-Gateways im Cache nicht, wird eine lokale ARP-Adressauflösung ausgelöst. Ist die
Hardware-Adresse des Standard-Gateways bekannt, schickt der Sender bereits sein erstes Datenpaket an die Ziel-Station.
Der Router (Standard-Gateway) nimmt das Datenpaket in Empfang und untersucht den IP-Header. Der Router überprüft, ob
sich die Ziel-IP-Adresse in einem angeschlossenen Subnetz befindet. Wenn ja, ermittelt er anhand der lokalen
ARP-Adressauflösung die MAC-Adresse der Ziel-Station. Anschließend leitet er das Datenpaket weiter. Ist das Ziel in
einem entfernten Subnetz, überprüft der Router seine Routing-Tabelle, ob ein Weg zum Ziel bekannt ist. Ist das nicht der
Fall steht dem Router auch ein Standard-Gateway zu Verfügung. Der Router führt für sein Standard-Gateway eine
ARP-Adressauflösung durch und leitet das Datenpaket an dieses weiter.
Die vorangegangenen Schritte wiederholen sich so oft, bis das Datenpaket sein Ziel erreicht oder das IP-Header-Feld TTL
auf den Wert 0 springt. Dann wird das Datenpaket vom Netz genommen.
Erreicht das Datenpaket irgendwann doch sein Ziel, schreibt die betreffende Station seine Rückantwort in ein ICMP-Paket
an den Sender. In dieser Antwort wird, falls möglich ein Gateway vermerkt, über das die beiden Stationen miteinander
kommunizieren. So werden weitere ARP-Adressauflösungen und dadurch Broadcasts vermieden.
ARP-Cache
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>arp -a
Schnittstelle: 192.168.168.11 --- 0x2
Internetadresse Physikal. Adresse Typ
192.168.168.8 00-30-ab-0e-d3-6a dynamisch
Durch den ARP-Cache wird vermieden, dass bei jedem Datenpaket an dasselbe Ziel wieder und immer wieder ein
ARP-Broadcast ausgelöst wird. Häufig benutzte Hardware-Adressen sind im ARP-Cache gespeichert. Die Einträge im ARP-Cache
können statisch oder dynamisch sein. Statische Einträge können manuell hinzugefügt und gelöscht werden. Dynamische
Einträge werden durch die ARP-Adressauflösung erzeugt.
Jeder dynamische Eintrag bekommt einen Zeitstempel. Ist er nach einer bestimmten Zeit, zum Beispiel zwei Minuten, nicht
mehr abgerufen worden, wird der Eintrag gelöscht. Wird eine Adresse auch nach diesen zwei Minuten noch benutzt, wird der
Eintrag erst später gelöscht. Ist der ARP-Cache für neue Einträge zu klein, werden die ältesten Einträge entfernt.
Wird die Hardware neu gestartet oder ausgeschaltet, wird der ARP-Cache gelöscht. Es gehen dabei auch die statischen
Einträge verloren.
ARP-Cache
Das ARP-Paket ist am Typfeld des Ethernetframes zu erkennen. Die Nummer Ox0806 (2054) ist für das Address Resolution
Protocol vorgesehen und macht es von anderen Protokollen unterscheidbar.
Der Ethernetrahmen beinhaltet ein IP-Paket. Diese ist durch den Protokolltyp OxSOOO gekennzeichnet.
Beispiel ARP Request:
Ethernet II
Destination: Broadcast (ff : ff:ff : ff:ff : ff)
Source: Agere_66:79:ca (00:02:2d:66:79 : ca)
Type: ARP (0x0806)
Address Resolution Protocol (request)
Hardware type: Ethernet (0x000l)
Protocol type: IP (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (0x000l)
Sender MAC addresa: Agere_66:79:ca
Sender IP address: 134.61.33.148
Target MAC address : 00:00:00_00:00:00
Target IP address: 134.61.32.1
Beispiel ARP Reply:
Ethernet II
Destination : Agere_66 :79:ca
(00 : 02:2d:66 : 79:ca)
Source: Ibn\....3e:81 : 76 (00:~4 : 5e:3e : Bl:76)
Type : ARP (0x0806)
Address Resolution Protocol (reply)
Hardware type: Ethernet (0x000l)
Protocol type: IP (0x0800)
Hardware size: 6
Protocol size: 4
Opcode : reply (0x0002)
Sender MAC address : 1-.,3e:81:76
Sender IP address: 134.61.32.1
Target MAC ad.dress: Agere_66:79 : ca
Target IP address: 134 . 61 . 33.14B
ARP - Artikel von netzmafia.de
Quelle: http://www.netzmafia.de/skripten/netze/netz8.html
Die Umsetzung einer IP-Adresse in eine Hardware-Adresse erfolgt durch Tabellen und auf Hardware-Ebene (z. B. Ethernet) automatisch über ARP (Adress Resolution Protocol). Dazu ein Beispiel:
Die Station A will Daten an eine Station B mit der Internetadresse I(B) senden, deren physikalische Adresse P(B) sie noch nicht kennt. Sie sendet einem ARP-Request an alle Stationen im Netz, der die eigene physikalische Adresse und die IP-Adresse von B enthält.
Alle Stationen erhalten und überprüfen den ARP-Request und die angesprochene Station B antwortet, indem sie einen ARP-Reply mit ihrer eigenen physikalischen Adresse an die Station A sendet. Letztere speichert die Zuordnung in einer Tabelle (Address Resolution Cache).
ARP komplex mit Routingtabellen- und Schnittstellenbetrachtung
Quelle: https://de.wikipedia.org/wiki/Address_Resolution_Protocol#/media/Datei:ARP_und_Routing.png