Um in TCP/IP-Netz­wer­ken Da­ten­pa­ke­te ver­schi­cken zu können, benötigt ein Sender vor allem drei Adress­in­for­ma­tio­nen über den adres­sier­ten Host: die Sub­netz­mas­ke, die IP-Adresse sowie die MAC-Adresse (auch Hardware-Adresse oder phy­si­ka­li­sche Adresse). Ihre Netzmaske und IP-Adresse erhalten Netz­werk­ge­rä­te au­to­ma­tisch und flexibel, wenn sie sich mit einem Netzwerk verbinden. Zu diesem Zweck greifen die ver­mit­teln­den Kom­mu­ni­ka­ti­ons­ge­rä­te wie Router oder Hubs auf das DHCP-Protokoll zurück. In lokalen Netz­wer­ken lassen sich die beiden Angaben auch manuell eintragen. Die Hardware-Adresse wird hingegen vom Her­stel­ler des je­wei­li­gen Gerätes vergeben und erst mithilfe des so­ge­nann­ten Address Re­so­lu­ti­on Protocol (ARP) mit einer be­stimm­ten IP-Adresse verknüpft.

KI-Assistent kostenlos – Ihr smarter All­tags­hel­fer
  • DSGVO-konform & sicher gehostet in Deutsch­land
  • Pro­duk­ti­vi­tät steigern – weniger Aufwand, mehr Output
  • Direkt im Browser starten – ohne In­stal­la­ti­on

De­fi­ni­ti­on des ARP-Pro­to­kolls

Das Address Re­so­lu­ti­on Protocol (dt. „Adress­auf­lö­sungs­pro­to­koll“) wurde 1982 im RFC-Standard 826 spe­zi­fi­ziert, um die Auflösung von IPv4-Adressen in MAC-Adressen zu be­werk­stel­li­gen. ARP ist aus zweierlei Gründen für die Über­tra­gung von Daten in Ethernet-Netz­wer­ken un­ver­zicht­bar: Zum einen können die einzelnen Da­ten­frames (auch Ethernet-Frames) eines IP-Pakets erst mithilfe der Hardware-Adresse an die ge­wünsch­ten Zielhosts versendet werden; das In­ter­net­pro­to­koll kann diese phy­si­ka­li­schen Adressen selbst­stän­dig jedoch nicht beziehen. Zum anderen fehlt dem IPv4-Protokoll aufgrund seiner be­schränk­ten Länge die Mög­lich­keit, die Ge­rä­te­adres­sen zu speichern. Mit einem eigenen Caching-Me­cha­nis­mus hat ARP auch hierfür die passende Lösung parat. Für das neuere IPv6 werden die ent­spre­chen­den Funk­tio­nen vom Neighbor Discovery Protocol (NDP) über­nom­men.

Wie funk­tio­niert ARP?

Bei der Adress­auf­lö­sung via ARP ist grund­sätz­lich da­hin­ge­hend zu un­ter­schei­den, ob sich die IP-Adresse des Zielhosts im gleichen lokalen Netz oder in einem anderen Subnetz befindet. Soll also zu einer be­stimm­ten IP- die MAC-Adresse zu­ge­ord­net werden, findet zunächst eine In­spek­ti­on der Sub­netz­mas­ke statt.

Ist die IP im lokalen Netzwerk be­hei­ma­tet, wird im ersten Schritt kon­trol­liert, ob im ARP-Cache bereits ein ent­spre­chen­der Eintrag für diese vorliegt.

Fakt

Beim ARP-Cache handelt es sich um eine ta­bel­la­ri­sche Auf­lis­tung der am häu­figs­ten be­nö­tig­ten MAC-Adressen, wobei die einzelnen Einträge entweder vom Netz­werk­pro­to­koll selbst oder manuell erzeugt werden. Erstere Einträge, die man auch als dynamisch be­zeich­net, erhalten einen Zeit­stem­pel, nach dessen Ablauf sie wieder aus dem Cache gelöscht werden. Letztere, die sta­ti­schen Adress­ein­trä­ge, bleiben vorhanden, bis das Gerät aus­ge­schal­tet bzw. neu­ge­star­tet und der komplette ARP-Cache geleert wird.

Ist der IP-Adresse bereits ein phy­si­ka­li­sches Pendant zu­ge­ord­net, wird dieses für die Adres­sie­rung verwendet. Ist das nicht der Fall, ver­schickt 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 Emp­fän­ger­adres­se. Die einzelnen Stationen ver­glei­chen die im Request an­ge­ge­be­ne IP-Adresse mit ihrer eigenen und verwerfen die Anfrage, wenn keine Über­ein­stim­mung vorliegt. Re­gis­triert 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 über­mit­telt. Beide Seiten können nun MAC- und IP-Adresse des Ge­gen­übers in den Cache aufnehmen, womit die Basis für den Da­ten­aus­tausch ge­schaf­fen ist.

Befindet sich der Zielhost nicht im gleichen Subnetz, wendet sich der Absender an das Standard-Gateway (stan­dard­mä­ßig ein Router). Dieses erreicht er ebenfalls über die Kom­bi­na­ti­on von MAC- und IP-Adresse, weshalb auch hierfür das Address Re­so­lu­ti­on Protocol benötigt wird. Das Gateway nimmt das Da­ten­pa­ket nach der Adress­auf­lö­sung in Empfang und kümmert sich im Anschluss um die Wei­ter­lei­tung zum Zielhost. Hierfür ana­ly­siert es zunächst den IP-Header, um die not­wen­di­gen In­for­ma­tio­nen zu erhalten. An­schlie­ßend macht es ebenfalls von den Mög­lich­kei­ten des ARP-Pro­to­kolls Gebrauch und löst so

  • entweder direkt die phy­si­ka­li­sche Adresse des Ziel­com­pu­ters auf, wenn dieser sich in einem be­nach­bar­ten Subnetz befindet,
  • oder die Hardware-Adresse eines weiteren Gateways auf, wenn sich der Ziel­com­pu­ter in einem ent­fern­ten Subnetz befindet und der Paketweg nicht mithilfe der Routing-Tabelle bestimmt werden kann.

In zuletzt genanntem Szenario wie­der­holt sich der Vorgang so oft, bis das Da­ten­pa­ket sein Ziel erreicht oder das TTL-Feld (Time to live) im IP-Header den Wert 0 an­ge­nom­men hat.

So sieht der Aufbau von ARP-Nach­rich­ten aus

Das ARP-Protokoll nutzt ein simples Nach­rich­ten­for­mat, um Requests zu ver­schi­cken oder auf selbige zu antworten. Auch wenn es ur­sprüng­lich für IPv4- und MAC-Adressen vor­ge­se­hen ist, sind theo­re­tisch auch andere Netz­werk­pro­to­kol­le möglich, weshalb Felder für den Typ und die Größe der Hardware- und Pro­to­koll­adres­se exis­tie­ren. In der Kon­se­quenz kann sich also auch die Ge­samt­grö­ße der ARP-Pakete un­ter­schei­den. Für das Stan­dard­sze­na­rio, den Einsatz von ARP in IPv4-Ethernet-Netzen, ergibt sich bei­spiels­wei­se eine Länge von 224 Bit (28 Byte). Die folgende Dar­stel­lung zeigt die Be­stand­tei­le eines solchen In­for­ma­ti­ons­pa­kets:

Der ARP-Header beginnt also mit der 16 Bit langen In­for­ma­ti­on über den Typ der Hardware-Adresse. Im Fall der be­ab­sich­tig­ten Ethernet-Geräte würde das Paket hier den Wert 1 aufweisen. Es folgt die Angabe des Pro­to­kolls (ebenfalls 16 Bit), das als Grundlage für die ARP-Adress­auf­lö­sung dienen soll. IPv4-Adressen kenn­zeich­nen 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 Auf­schluss ü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 ge­kenn­zeich­net. IP-Adressen sind 4 Byte lang (32 Bit), weshalb hier stan­dard­mä­ßig der Wert 4 steht.

Die nächsten 16 Bit (Operation) sind für die Spe­zi­fi­zie­rung der ARP-Nachricht vor­be­hal­ten. So steht 1 für eine ARP-Anfrage, während eine 2 verrät, dass es sich um eine ARP-Antwort handelt. Ab­schlie­ßend enthalten die Pakete die vier re­le­van­ten und zuvor de­kla­rier­ten Adressen:

  • MAC-Adresse des Absenders: Enthält in einer Anfrage die MAC-Adresse des an­for­dern­den Computers; in einer ARP-Antwort findet sich an dieser Stelle entweder die phy­si­ka­li­sche Adresse des Ziels oder des nächsten Gateways.
  • IP-Adresse des Absenders: Enthält die IP-Adresse des an­for­dern­den Computers (ARP-Anfrage) oder des Ziels bzw. des nächsten Gateways (Antwort).
  • MAC-Adresse des Emp­fän­gers: 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 an­fra­gen­den Hosts ver­zeich­net.
  • IP-Adresse des Emp­fän­gers: In einer Anfrage enthält dieses Feld die IP-Adresse des Hosts, dessen MAC-Adresse gesucht wird; in einer Ant­wort­nach­richt steht hier die IP-Adresse des an­fra­gen­den Computers.

ARP kon­fi­gu­rie­ren – so funk­tio­niert’s

Das Address Re­so­lu­ti­on Protocol erfährt als Stan­dard­pro­to­koll platt­form­über­grei­fend Un­ter­stüt­zung und sorgt als solches im Hin­ter­grund für die MAC-Adress­auf­lö­sung – egal, ob es sich um ein Linux-, Windows- oder macOS-System handelt. Darüber hinaus existiert für die ver­schie­de­nen Be­triebs­sys­te­me ein gleich­na­mi­ges Kom­man­do­zei­len­tool, mit dessen Hilfe Sie den ARP-Cache anzeigen lassen und Einträge manuell hin­zu­fü­gen oder entfernen können. Eine kompakte Übersicht der Mög­lich­kei­ten erhalten Sie, indem Sie die Ein­ga­be­auf­for­de­rung bzw. das Terminal öffnen und den Befehl arp (Windows) bzw. arp -man (Linux) eingeben.

Wenn es Ihnen darum geht, die ein­ge­tra­ge­nen Kom­bi­na­tio­nen aus IP- und MAC-Adresse zu be­gut­ach­ten, funk­tio­niert sys­tem­über­grei­fend der Befehl arp -a. Durch die Eingabe werden die Adress­paa­re für alle ARP-nutzenden Netz­werk­schnitt­stel­len auf­ge­lis­tet. Zu­sätz­lich erhalten Sie auch die In­for­ma­ti­on 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 aus­schließ­lich Angaben zu dieser.

Wollen Sie nun die Adress­kom­bi­na­ti­on eines Hosts ei­gen­stän­dig hin­zu­fü­gen oder aus den ARP-Tabellen entfernen, benötigen Sie die Parameter -s bzw. -d. Verbirgt sich bei­spiels­wei­se hinter der IP-Adresse 157.55.85.212 die phy­si­ka­li­sche Adresse 00-aa-00-62-c6-09, erstellen Sie einen ent­spre­chen­den sta­ti­schen Eintrag mit dem folgenden Befehl:

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

Ebenso schnell ist diese In­for­ma­ti­on wieder aus dem Cache entfernt, wenn Sie statt­des­sen den „Delete“-Parameter auf eine der ar­chi­vier­ten Adressen anwenden:

arp -d 157.55.85.212

Anstelle einer be­stimm­ten In­ter­net­adres­se können Sie hier auch den Platz­hal­ter * nutzen, um alle zwi­schen­ge­spei­cher­ten Angaben zu löschen.

Welche Ab­wand­lun­gen des ARP-Pro­to­kolls gibt es?

Abseits der bisher vor­ge­stell­ten Stan­dard­funk­ti­on gibt es eine Reihe von al­ter­na­ti­ven Nut­zungs­mög­lich­kei­ten für ARP-Nach­rich­ten­pa­ke­te. So kann ein Host diese bei­spiels­wei­se auch dazu verwenden, die anderen Netz­werk­teil­neh­mer über seine eigene MAC-Adresse zu in­for­mie­ren. Zu diesem Zweck ver­schickt er eine ARP-Anfrage an die Broadcast-MAC-Adresse und trägt die eigene IP sowohl als Quell- als auch als Emp­fän­ger­adres­se ein. Da dies aus eigenem Antrieb geschieht, nennt man diese Ab­wand­lung des Pro­to­kolls auch Gra­tui­tous ARP (dt. „un­auf­ge­for­der­tes ARP“). Eine solche selbst­in­iti­ier­te Mit­tei­lung der phy­si­ka­li­schen Adresse kann z. B. aus folgenden Gründen geschehen:

  1. GARP-Nach­rich­ten dürfen aufgrund ihrer IP-Adres­sie­rung in der Theorie keinerlei Antwort her­vor­ru­fen – an­dern­falls spräche dies dafür, dass die vom Absender genutzte IP-Adresse doppelt vergeben wäre. Reagiert einer der per Broadcast kon­tak­tier­ten Hosts dennoch mit einer Ant­wort­nach­richt, ist das für den Netz­werk­ad­mi­nis­tra­tor ein Hinweis auf eine feh­ler­haf­te Kon­fi­gu­ra­ti­on.
  2. Gra­tui­tous ARP er­mög­licht es allen Hosts, die Hardware-Adresse des Senders in den eigenen Cache auf­zu­neh­men. Das ist ins­be­son­de­re dann von Vorteil, wenn sich diese Adresse bei­spiels­wei­se wegen eines Aus­tauschs der Netz­werk­kar­te geändert hat. Für ge­wöhn­lich werden die ab­ge­wan­del­ten ARP-Nach­rich­ten daher immer dann ver­schickt, wenn ein Computer bootet.
  3. Server, die zum Zweck der Aus­fall­si­cher­heit als Server und Er­satz­ser­ver kon­fi­gu­riert sind, teilen sich häufig eine IP-Adresse. Damit der Da­ten­ver­kehr im Ernstfall auf den ein­sprin­gen­den Server um­ge­lei­tet wird, muss dieser den anderen Hosts seine MAC-Adresse verkünden. Hierfür erweisen sich GARP-Nach­rich­ten als her­vor­ra­gen­de Option.
  4. Mobile IP er­mög­licht es einem mobilen Host, die eigene IP-Adresse auch bei einem Netz­wech­sel zu behalten. Zu diesem Zweck übernimmt ein so­ge­nann­ter Home Agent die IP des mobilen Hosts, wenn sich dieser aus dem Heim­netz­werk entfernt. Um auf sich auf­merk­sam zu machen, sendet er eine Gra­tui­tous-ARP-Nachricht. Auf die gleiche Weise meldet sich der mobile Host zurück, wenn er sich wieder im Heim­netz­werk befindet.

Eine weitere Ab­wand­lungs­form stellt das Reverse Address Re­so­lu­ti­on 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ög­lich­keit, die eigene In­ter­net­adres­se zu ermitteln, machen solche Geräte Gebrauch, bei denen die Zuweisung oder dau­er­haf­te Spei­che­rung nicht vor­ge­se­hen ist (z. B. Work­sta­tions ohne Fest­plat­ten­lauf­werk).

Ebenfalls ver­brei­tet ist die Mo­di­fi­ka­ti­on Proxy ARP, die Router dazu befähigt, ARP-Anfragen für andere Hosts zu be­ant­wor­ten. So wird die Kom­mu­ni­ka­ti­on zweier Hosts aus ver­schie­de­nen Subnetzen möglich, ohne dass Än­de­run­gen an den Netz­werk­kon­fi­gu­ra­tio­nen der Geräte er­for­der­lich sind. Erreicht eine ARP-Anfrage einen Router mit ak­ti­vier­tem Proxy ARP, antwortet dieser also anstelle des ei­gent­li­chen Ziel­com­pu­ters. Er über­mit­telt seine eigene MAC-Adresse, woraufhin er an­schlie­ßend auch die Da­ten­pa­ke­te des Absenders empfängt. An­schlie­ßend leitet der Router die Daten mithilfe der In­for­ma­tio­nen des ARP-Caches an den Zielhost weiter.

Fakt

Werden ARP-Nach­rich­ten und der ARP-Cache bewusst ma­ni­pu­liert, um un­be­fug­ten Zugriff auf ver­trau­li­che Daten zu erlangen, spricht man von ARP-Spoofing. Wie genau diese Art von Man-in-the-Middle-Angriff funk­tio­niert und welche Si­cher­heits­vor­keh­run­gen es zu treffen gilt, erfahren Sie in unserem Ratgeber "ARP-Spoofing: Angriffe aus dem internen Netzwerk".

Zum Hauptmenü