Wie gefällt Ihnen der Artikel?
10
Wie gefällt Ihnen der Artikel?
10

Was ist ARP (Address Resolution Protocol)?

Um in TCP/IP-Netzwerken Datenpakete verschicken zu können, benötigt ein Sender vor allem drei Adressinformationen über den adressierten Host: die Subnetzmaske, die IP-Adresse sowie die MAC-Adresse (auch Hardware-Adresse oder physikalische Adresse). Ihre Netzmaske und IP-Adresse erhalten Netzwerkgeräte automatisch und flexibel, wenn sie sich mit einem Netzwerk verbinden. Zu diesem Zweck greifen die vermittelnden Kommunikationsgeräte wie Router oder Hubs auf das DHCP-Protokoll zurück. In lokalen Netzwerken lassen sich die beiden Angaben auch manuell eintragen. Die Hardware-Adresse wird hingegen vom Hersteller des jeweiligen Gerätes vergeben und erst mithilfe des sogenannten Address Resolution Protocol (ARP) mit einer bestimmten IP-Adresse verknüpft.

Definition des ARP-Protokolls

Das Address Resolution Protocol (dt. „Adressauflösungsprotokoll“) wurde 1982 im RFC-Standard 826 spezifiziert, um die Auflösung von IPv4-Adressen in MAC-Adressen zu bewerkstelligen. ARP ist aus zweierlei Gründen für die Übertragung von Daten in Ethernet-Netzwerken unverzichtbar: Zum einen können die einzelnen Datenframes (auch Ethernet-Frames) eines IP-Pakets erst mithilfe der Hardware-Adresse an die gewünschten Zielhosts versendet werden; das Internetprotokoll kann diese physikalischen Adressen selbstständig jedoch nicht beziehen. Zum anderen fehlt dem IPv4-Protokoll aufgrund seiner beschränkten Länge die Möglichkeit, die Geräteadressen zu speichern. Mit einem eigenen Caching-Mechanismus hat ARP auch hierfür die passende Lösung parat. Für das neuere IPv6 werden die entsprechenden Funktionen vom Neighbor Discovery Protocol (NDP) übernommen.

Wie funktioniert ARP?

Bei der Adressauflösung via ARP ist grundsätzlich dahingehend zu unterscheiden, ob sich die IP-Adresse des Zielhosts im gleichen lokalen Netz oder in einem anderen Subnetz befindet. Soll also zu einer bestimmten IP- die MAC-Adresse zugeordnet werden, findet zunächst eine Inspektion der Subnetzmaske statt.

Ist die IP im lokalen Netzwerk beheimatet, wird im ersten Schritt kontrolliert, ob im ARP-Cache bereits ein entsprechender Eintrag für diese vorliegt.

Fakt

Beim ARP-Cache handelt es sich um eine tabellarische Auflistung der am häufigsten benötigten MAC-Adressen, wobei die einzelnen Einträge entweder vom Netzwerkprotokoll selbst oder manuell erzeugt werden. Erstere Einträge, die man auch als dynamisch bezeichnet, erhalten einen Zeitstempel, nach dessen Ablauf sie wieder aus dem Cache gelöscht werden. Letztere, die statischen Adresseinträge, bleiben vorhanden, bis das Gerät ausgeschaltet bzw. neugestartet und der komplette ARP-Cache geleert wird.

Ist der IP-Adresse bereits ein physikalisches Pendant zugeordnet, wird dieses für die Adressierung verwendet. Ist das nicht der Fall, verschickt der Absender eine ARP-Anfrage (ARP Request) mit der Ziel-IP an alle Hosts im Netzwerk. Zu diesem Zweck nutzt er die ARP-Broadcast-Adresse FF:FF:FF:FF:FF:FF als Empfängeradresse. Die einzelnen Stationen vergleichen die im Request angegebene IP-Adresse mit ihrer eigenen und verwerfen die Anfrage, wenn keine Übereinstimmung vorliegt. Registriert eine Station jedoch, dass es sich um die eigene Adresse handelt, reagiert sie mit einer ARP-Antwort (ARP Reply), in der sie u. a. auch die MAC-Adresse übermittelt. Beide Seiten können nun MAC- und IP-Adresse des Gegenübers in den Cache aufnehmen, womit die Basis für den Datenaustausch geschaffen ist.

Befindet sich der Zielhost nicht im gleichen Subnetz, wendet sich der Absender an das Standard-Gateway (standardmäßig ein Router). Dieses erreicht er ebenfalls über die Kombination von MAC- und IP-Adresse, weshalb auch hierfür das Address Resolution Protocol benötigt wird. Das Gateway nimmt das Datenpaket nach der Adressauflösung in Empfang und kümmert sich im Anschluss um die Weiterleitung zum Zielhost. Hierfür analysiert es zunächst den IP-Header, um die notwendigen Informationen zu erhalten. Anschließend macht es ebenfalls von den Möglichkeiten des ARP-Protokolls Gebrauch und löst so

  • entweder direkt die physikalische Adresse des Zielcomputers auf, wenn dieser sich in einem benachbarten Subnetz befindet,
  • oder die Hardware-Adresse eines weiteren Gateways auf, wenn sich der Zielcomputer in einem entfernten Subnetz befindet und der Paketweg nicht mithilfe der Routing-Tabelle bestimmt werden kann.

In zuletzt genanntem Szenario wiederholt sich der Vorgang so oft, bis das Datenpaket sein Ziel erreicht oder das TTL-Feld (Time to live) im IP-Header den Wert 0 angenommen hat.

So sieht der Aufbau von ARP-Nachrichten aus

Das ARP-Protokoll nutzt ein simples Nachrichtenformat, um Requests zu verschicken oder auf selbige zu antworten. Auch wenn es ursprünglich für IPv4- und MAC-Adressen vorgesehen ist, sind theoretisch auch andere Netzwerkprotokolle möglich, weshalb Felder für den Typ und die Größe der Hardware- und Protokolladresse existieren. In der Konsequenz kann sich also auch die Gesamtgröße der ARP-Pakete unterscheiden. Für das Standardszenario, den Einsatz von ARP in IPv4-Ethernet-Netzen, ergibt sich beispielsweise eine Länge von 224 Bit (28 Byte). Die folgende Darstellung zeigt die Bestandteile eines solchen Informationspakets:

Der ARP-Header beginnt also mit der 16 Bit langen Information über den Typ der Hardware-Adresse. Im Fall der beabsichtigten Ethernet-Geräte würde das Paket hier den Wert 1 aufweisen. Es folgt die Angabe des Protokolls (ebenfalls 16 Bit), das als Grundlage für die ARP-Adressauflösung dienen soll. IPv4-Adressen kennzeichnen sich durch den Wert 0x0800 (2048), der im Übrigen auch in Ethernet-Frames als Wert für das IPv4-Protokoll genutzt wird (EtherType). Die nächsten beiden Felder geben Aufschluss über die Länge der beiden Adressen (in Byte). MAC-Adressen haben eine Größe von 6 Byte (48 Bit) und werden daher durch den Wert 6 gekennzeichnet. IP-Adressen sind 4 Byte lang (32 Bit), weshalb hier standardmäßig der Wert 4 steht.

Die nächsten 16 Bit (Operation) sind für die Spezifizierung der ARP-Nachricht vorbehalten. So steht 1 für eine ARP-Anfrage, während eine 2 verrät, dass es sich um eine ARP-Antwort handelt. Abschließend enthalten die Pakete die vier relevanten und zuvor deklarierten Adressen:

  • MAC-Adresse des Absenders: Enthält in einer Anfrage die MAC-Adresse des anfordernden Computers; in einer ARP-Antwort findet sich an dieser Stelle entweder die physikalische Adresse des Ziels oder des nächsten Gateways.
  • IP-Adresse des Absenders: Enthält die IP-Adresse des anfordernden Computers (ARP-Anfrage) oder des Ziels bzw. des nächsten Gateways (Antwort).
  • MAC-Adresse des Empfängers: In diesem Feld steht die Broadcast-MAC-Adresse FF:FF:FF:FF:FF:FF, wenn der Sender eine Anfrage stellt; in einer ARP-Antwort ist hier die Hardware-Adresse des anfragenden Hosts verzeichnet.
  • IP-Adresse des Empfängers: In einer Anfrage enthält dieses Feld die IP-Adresse des Hosts, dessen MAC-Adresse gesucht wird; in einer Antwortnachricht steht hier die IP-Adresse des anfragenden Computers.

ARP konfigurieren – so funktioniert’s

Das Address Resolution Protocol erfährt als Standardprotokoll plattformübergreifend Unterstützung und sorgt als solches im Hintergrund für die MAC-Adressauflösung – egal, ob es sich um ein Linux-, Windows- oder macOS-System handelt. Darüber hinaus existiert für die verschiedenen Betriebssysteme ein gleichnamiges Kommandozeilentool, mit dessen Hilfe Sie den ARP-Cache anzeigen lassen und Einträge manuell hinzufügen oder entfernen können. Eine kompakte Übersicht der Möglichkeiten erhalten Sie, indem Sie die Eingabeaufforderung bzw. das Terminal öffnen und den Befehl arp (Windows) bzw. arp -man (Linux) eingeben.

Wenn es Ihnen darum geht, die eingetragenen Kombinationen aus IP- und MAC-Adresse zu begutachten, funktioniert systemübergreifend der Befehl arp -a. Durch die Eingabe werden die Adresspaare für alle ARP-nutzenden Netzwerkschnittstellen aufgelistet. Zusätzlich erhalten Sie auch die Information darüber, ob ein Eintrag dynamisch erzeugt oder manuell angelegt worden ist. Erweitern Sie das Kommando um eine konkrete IP-Adresse, liefert Ihnen die Anwendung ausschließlich Angaben zu dieser.

Wollen Sie nun die Adresskombination eines Hosts eigenständig hinzufügen oder aus den ARP-Tabellen entfernen, benötigen Sie die Parameter -s bzw. -d. Verbirgt sich beispielsweise hinter der IP-Adresse 157.55.85.212 die physikalische Adresse 00-aa-00-62-c6-09, erstellen Sie einen entsprechenden statischen Eintrag mit dem folgenden Befehl:

arp -a 157.55.85.212 00-aa-00-62-c6-09

Ebenso schnell ist diese Information wieder aus dem Cache entfernt, wenn Sie stattdessen den „Delete“-Parameter auf eine der archivierten Adressen anwenden:

arp -d 157.55.85.212

Anstelle einer bestimmten Internetadresse können Sie hier auch den Platzhalter * nutzen, um alle zwischengespeicherten Angaben zu löschen.

Welche Abwandlungen des ARP-Protokolls gibt es?

Abseits der bisher vorgestellten Standardfunktion gibt es eine Reihe von alternativen Nutzungsmöglichkeiten für ARP-Nachrichtenpakete. So kann ein Host diese beispielsweise auch dazu verwenden, die anderen Netzwerkteilnehmer über seine eigene MAC-Adresse zu informieren. Zu diesem Zweck verschickt er eine ARP-Anfrage an die Broadcast-MAC-Adresse und trägt die eigene IP sowohl als Quell- als auch als Empfängeradresse ein. Da dies aus eigenem Antrieb geschieht, nennt man diese Abwandlung des Protokolls auch Gratuitous ARP (dt. „unaufgefordertes ARP“). Eine solche selbstinitiierte Mitteilung der physikalischen Adresse kann z. B. aus folgenden Gründen geschehen:

  1. GARP-Nachrichten dürfen aufgrund ihrer IP-Adressierung in der Theorie keinerlei Antwort hervorrufen – andernfalls spräche dies dafür, dass die vom Absender genutzte IP-Adresse doppelt vergeben wäre. Reagiert einer der per Broadcast kontaktierten Hosts dennoch mit einer Antwortnachricht, ist das für den Netzwerkadministrator ein Hinweis auf eine fehlerhafte Konfiguration.
  2. Gratuitous ARP ermöglicht es allen Hosts, die Hardware-Adresse des Senders in den eigenen Cache aufzunehmen. Das ist insbesondere dann von Vorteil, wenn sich diese Adresse beispielsweise wegen eines Austauschs der Netzwerkkarte geändert hat. Für gewöhnlich werden die abgewandelten ARP-Nachrichten daher immer dann verschickt, wenn ein Computer bootet.
  3. Server, die zum Zweck der Ausfallsicherheit als Server und Ersatzserver konfiguriert sind, teilen sich häufig eine IP-Adresse. Damit der Datenverkehr im Ernstfall auf den einspringenden Server umgeleitet wird, muss dieser den anderen Hosts seine MAC-Adresse verkünden. Hierfür erweisen sich GARP-Nachrichten als hervorragende Option.
  4. Mobile IP ermöglicht es einem mobilen Host, die eigene IP-Adresse auch bei einem Netzwechsel zu behalten. Zu diesem Zweck übernimmt ein sogenannter Home Agent die IP des mobilen Hosts, wenn sich dieser aus dem Heimnetzwerk entfernt. Um auf sich aufmerksam zu machen, sendet er eine Gratuitous-ARP-Nachricht. Auf die gleiche Weise meldet sich der mobile Host zurück, wenn er sich wieder im Heimnetzwerk befindet.

Eine weitere Abwandlungsform stellt das Reverse Address Resolution Protocol (RARP) dar, das die Funktion von ARP im Prinzip umkehrt: Es löst also nicht IP-Adressen in MAC-Adressen auf, sondern MAC-Adressen in IP-Adressen. Von dieser Möglichkeit, die eigene Internetadresse zu ermitteln, machen solche Geräte Gebrauch, bei denen die Zuweisung oder dauerhafte Speicherung nicht vorgesehen ist (z. B. Workstations ohne Festplattenlaufwerk).

Ebenfalls verbreitet ist die Modifikation Proxy ARP, die Router dazu befähigt, ARP-Anfragen für andere Hosts zu beantworten. So wird die Kommunikation zweier Hosts aus verschiedenen Subnetzen möglich, ohne dass Änderungen an den Netzwerkkonfigurationen der Geräte erforderlich sind. Erreicht eine ARP-Anfrage einen Router mit aktiviertem Proxy ARP, antwortet dieser also anstelle des eigentlichen Zielcomputers. Er übermittelt seine eigene MAC-Adresse, woraufhin er anschließend auch die Datenpakete des Absenders empfängt. Anschließend leitet der Router die Daten mithilfe der Informationen des ARP-Caches an den Zielhost weiter.

Fakt

Werden ARP-Nachrichten und der ARP-Cache bewusst manipuliert, um unbefugten Zugriff auf vertrauliche Daten zu erlangen, spricht man von ARP-Spoofing. Wie genau diese Art von Man-in-the-Middle-Angriff funktioniert und welche Sicherheitsvorkehrungen es zu treffen gilt, erfahren Sie in unserem Ratgeber zu diesem Thema.

Netzwerk Protokolle