Address Resolution Protocol

Aus Foxwiki

ARP (Address Resolution Protocol)

Beschreibung

Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physische Adresse (Hardware-Adresse) der Netzzugangsschicht ermittelt und diese Zuordnung gegebenenfalls in den ARP-Tabellen der beteiligten Rechner hinterlegt.

  • Es wird fast ausschließlich im Zusammenhang mit IPv4-Adressierung auf Ethernet-Netzen, also zur Ermittlung von MAC-Adressen zu gegebenen IP-Adressen verwendet, obwohl es nicht darauf beschränkt ist.
  • Für IPv6 wird diese Funktionalität nicht von ARP, sondern durch das Neighbor Discovery Protocol (NDP) bereitgestellt.
  • Zuordnung von Ebene 3 (IP-) Adressen zu Ebene 2 (MAC-) Adressen
  • Um IP-Pakete über Ethernet zu verschicken, ist noch eine Zuordnung der Adressierung von IP auf die Adressierung von Ethernet nötig
  • Diese Zuordnung übernimmt das ARP - das Address Resolution Protocol
  • ARP ist ein einfaches Protokoll, das auf Ethernet-Broadcasts basiert
  • Jeder Host der über Ethernet an ein Netzwerk angeschlossen ist unterhält eine Tabelle
  • Diese Tabelle (ARP-Cache) enthält Einträge, die für alle bekannten IP-Adressen das Ethernet-Device und die MAC-Adresse angeben
  • ARP-Einträge können entweder statisch gesetzt werden (wenn die MAC-Adresse bekannt ist) oder dynamisch angelegt werden (über das Protokoll)
  • Ist ein Paket an eine IP-Adresse zu versenden, für die es im Cache keinen Eintrag gibt, wird ein Broadcast gesendet und nach der IP gefragt
  • Das System, welches die IP besitzt, antwortet mit einem ARP-Reply
  • Danach wird ein neuer Eintrag in den ARP-Cache eingefügt
  • Dynamische ARP-Einträge haben eine begrenzte Gültigkeit und werden nach gewisser Zeit gelöscht
  • Um auf Veränderungen der IP- oder MAC-Adresse reagieren zu können


Namens- und Adressauflösung

Einordnung ins DoD-Modell

ARP (Address Resolution Protocol)
Familie: Internetprotokollfamilie
Einsatzgebiet: Netzwerkadressenzuordnung
Vorlage:Netzwerk-TCP-IP-Sicherungsprotokoll
Standards: RFC 826 (1982)

ARP - Eigenschaften

  • RFC 826
  • Setzt auf dem Data Link Layer (Ethernet, TR, etc.) auf
  • (Ethernet-) Typefeld: 08-06

Datagramm

Das ARP-Paket schließt sich an den Ethernet-MAC-Header an.

  • Das Typfeld im Ethernet-Frame wird auf 0x0806 (2054) gesetzt.
  • Diese Nummer ist für das ARP-Protokoll reserviert.
  • Dadurch lassen sich ARP-Pakete von Paketen anderer Protokolle wie beispielsweise IP unterscheiden.

Da das Paket sehr kurz ist, müssen in der Regel im Ethernet-Frame zwischen ARP-Paket und CRC zusätzliche Bytes eingefügt werden (Padding), um die minimale Framelänge von 64 Bytes zu erreichen.

Obwohl ARP ursprünglich für IPv4 und MAC-Adressen entwickelt wurde, sind im Paket Adresstypen und Protokollgrößenfelder vorgesehen.

  • Dadurch ist ARP auch für andere Protokolle geeignet.
  • Für IPv6 könnten die Protokolladressgröße statt auf vier auf 16 Bytes gesetzt und die Adressfelder auf 128 Bits (= 16 Byte) verlängert werden, jedoch wird ARP für IPv6 durch das Neighbor Discovery Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
ARP-Nachrichtenformat am Beispiel Ethernet-MAC-Adressen und IPv4-Adressen
octet offset 0 1
0 Hardwareadresstyp
2 Protokolladresstyp
4 Hardwareadressgröße Protokolladressgröße
6 Operation
8 Quell-MAC-Adresse (erste 2 Bytes)
10 (nächste 2 Bytes)
12 (letzte 2 Bytes)
14 Quell-IP-Adresse (erste 2 Bytes)
16 (letzte 2 Bytes)
18 Ziel-MAC-Adresse (erste 2 Bytes)
20 (nächste 2 Bytes)
22 (letzte 2 Bytes)
24 Ziel-IP-Adresse (erste 2 Bytes)
26 (letzte 2 Bytes)

Hardwareadresstyp (2 Byte) enthält den Typ der MAC-Adresse im Paket (für Ethernet: 1).

Protokolladresstyp (2 Byte) enthält den Protokolltyp, der für die MAC-Adresse angefordert wird (für IPv4-Adressen: 0x0800 (2048)).

Hardwareadressgröße (1 Byte) enthält die Größe der MAC-Adresse (für Ethernet: 6).

Protokolladressgröße (1 Byte) enthält die Größe des Protokolls (für IPv4: 4).

Operation (2 Byte) enthält den Wert, der angibt, welche Operation ausgeführt werden soll (1 für ARP-Anforderung, 2 für ARP-Antwort).

Quell-MAC-Adresse (6 Byte) enthält in einer ARP-Anforderung die MAC-Adresse des Senders.

  • In einer ARP-Antwort enthält es die MAC-Adresse des antwortenden Hosts oder Next-Hop-Routers.

Quell-IP-Adresse (4 Bytes bei IPv4) enthält bei einer ARP-Anforderung die IP-Adresse des anfragenden Hosts.

  • In einer ARP-Antwort enthält es die IP-Adresse des antwortenden Hosts oder Next-Hop-Routers.

Ziel-MAC-Adresse (6 Byte) wird in einer ARP-Anforderung ignoriert (meist 00:00:00:00:00:0016).

  • In einer ARP-Antwort enthält es die MAC-Adresse des anfragenden Hosts.

Ziel-IP-Adresse (4 Bytes bei IPv4) ist bei einer ARP-Anforderung die IP-Adresse des gesuchten Hosts.

  • In einer ARP-Antwort enthält es die IP-Adresse des anfragenden Hosts.

Ablauf einer Adressauflösung durch ARP

  1. Rechner ‚A‘ sucht die MAC-Adresse von Rechner ‚B‘
  2. ARP-Cache wird überprüft
  3. ARP-Anforderung wird gesendet (Broadcast)
  4. ARP-Eintrag von Rechner ‚A‘ wird dem ARP-Cache hinzugefügt
  5. ARP-Antwort wird gesendet (Unicast)
  6. ARP-Eintrag wird von Rechner ‚B‘ wird dem ARP-Cache hinzugefügt
  7. IP-Pakete werden gesendet

Adressauflösung

Aufzeichnung des Befehls PING an 192.168.10.99

ARP - Ablaufdiagramm

ARP - Datagramm

Adressauflösung über Subnetzgrenzen (Routing)

Proxy ARP

  • Alternative zum Routing
  • Es gibt auch den Fall, dass ein System die IP-Pakete für ein anderes entgegennimmt und diese an das System weiterleitet
  • Gerade für Firewall-System ist dies nicht ungewöhnlich
  • In diesem Fall muss das System den ARP-Request für diese IP mit seiner eigenen MAC-Adresse beantworten
  • Dieses Verfahren nennt man “Proxy ARP”
  • Kein Protokoll, sondern Programm (Daemon) auf Router
  • Leitet ARP-Anfragen an Routing-Table weiter
  • Erspart (temporär) Routingeinträge auf Host
  • Belastet den Router durch notwendige zusätzliche ARP-Bearbeitung

Installation

Syntax

Parameter

Optionen

Konfiguration

Dateien

Anwendungen

Dokumentation

RFC

Links

Intern

  1. Linux:Befehl:arp

Weblinks

  1. https://itexamanswers.net/cyberops-associate-module-8-address-resolution-protocol.html

Kontrollfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

tmp

Verwendungen

MAC-Adressen werden vom Hersteller einer Ethernet-Netzwerkkarte oder eines Ethernet-fähigen Gerätes vergeben.

  • Die Adresse jeder Schnittstelle ist dabei theoretisch weltweit eindeutig.
  • Bei einigen Netzen, wie zum Beispiel Novell und DECnet, werden die Netzwerkadressen eindeutig auf die Ethernet-Adressen abgebildet, etwa, indem die MAC-Adresse um weitere Informationen ergänzt wird.
  • Ein Sender kann dann die MAC-Adresse des Empfängers einfach aus der Netzwerkadresse ermitteln.

IP-Adressen werden von der IANA (Internet Assigned Numbers Authority) zugeteilt.

  • Da IPv4-Adressen eine Länge von nur 32 Bits haben, können die 48 Bit langen MAC-Adressen damit nicht direkt abgebildet werden.
  • Es kann deshalb keine feste Beziehung zwischen MAC-Adressen und IP-Adressen hergestellt werden.
  • Bevor ein Rechner in einem Ethernet an einen Rechner im selben Subnetz ein IP-Paket sendet, muss er die Information in einen Ethernet-Frame verpacken.
  • Dazu muss er die MAC-Adresse des Zielrechners kennen und im entsprechenden Feld des Ethernet-Frames einfügen.
  • Ist ihm diese nicht bekannt, kann er das IP-Paket nicht zustellen.
  • Stattdessen ermittelt er dann mit Hilfe des ARP zunächst die MAC-Adresse des Zielrechners.

Funktionsweise am Beispiel Ethernet

Es wird eine ARP-Anforderung (ARP Request) mit der MAC-Adresse und der IP-Adresse des anfragenden Computers als Sender-IP-Adresse und der IP-Adresse des gesuchten Computers als Empfänger-IP-Adresse an alle Computer des lokalen Netzwerkes gesendet.

  • Als Empfänger-MAC-Adresse wird dazu die Broadcast-Adresse ff-ff-ff-ff-ff-ff16 im Ethernet-Frame verwendet, damit alle Computer des lokalen Netzwerkes die ARP-Anforderung empfangen.
  • Jedoch wird die Ziel-MAC-Adresse innerhalb der ARP-Anforderung mit 00-00-00-00-00-0016 gefüllt, um anzuzeigen, dass der Sender der ARP-Anforderung diese MAC-Adresse herausfinden möchte.
  • Empfängt ein Computer ein solches Paket, sieht er nach, ob dieses Paket seine IP-Adresse als Empfänger-IP-Adresse enthält.

Wenn dies der Fall ist, antwortet er mit dem Zurücksenden seiner MAC-Adresse und IP-Adresse (ARP-Antwort oder ARP-Reply) per Broadcast oder als Unicast.

  • Der Empfänger trägt nach Empfang der Antwort die empfangene Kombination von IP- und MAC-Adresse in seine ARP-Tabelle, auch ARP-Cache genannt, ein.
  • Für ARP-Request und ARP-Reply wird das gleiche Paketformat verwendet.

Zusätzlich können die Empfänger des ARP-Requests ebenfalls die Kombination von IP-Adresse und MAC-Adresse des anfragenden Computers in ihre ARP-Tabelle eintragen oder einen bestehenden Eintrag aktualisieren.

  • Insbesondere der Rechner mit der im ARP-Request angefragten IP-Adresse sollte diese Eintragung vornehmen, da anzunehmen ist, dass der ARP-Request als Vorbereitung für weitere Kommunikation auf höherer Protokollebene dienen soll, wofür er dann für eventuelle Antworten ebenfalls die MAC-Adresse des Anfragenden benötigt.

Die Einträge im ARP-Cache bestehen neben der Zuordnung von IP-Adresse und MAC-Adresse aus Angaben zu Eintragungszeitpunkt, Gültigkeitsdauer oder Alter des Eintrags und gegebenenfalls zum Protokolltyp.

  • Wie lange ein Eintrag im ARP-Cache verbleibt bevor er aus dem ARP-Cache gelöscht wird ist implementierungsabhängig und liegt meist im Bereich von wenigen Minuten.
  • So verwerfen aktuelle Linux-Distributionen Einträge nach etwa 5 Minuten.
  • Sobald ein Eintrag in der Tabelle genutzt wird, wird dessen Ablaufzeit verlängert.

Unter Unix und Windows kann der ARP-Cache mit arp beziehungsweise arp -a angezeigt und mit dem entsprechenden Programm auch manipuliert werden.

  • Mit dem Zusatzprogramm arping können manuell Anforderungen versendet werden.

ARP im globalen Zusammenhang

Das ARP ist für die Auflösung der MAC-Adressen im lokalen Netzwerk zuständig.

  • Sollen Daten über Netzwerkgrenzen hinweg gesendet werden, wird das Internet-Protokoll (IP) verwendet.
  • IP-Implementierungen sind in der Lage, zu erkennen, dass ein Paket nicht für das lokale Subnetz bestimmt ist und senden es an einen lokalen Router, der sich um die Weiterleitung des Pakets kümmert.
  • Dieser Router hat wiederum eine lokale MAC-Adresse, die über ARP ermittelt werden kann.

Das folgende Flussdiagramm stellt den Zusammenhang von IP-Routing mit ARP dar:

Schematische Darstellung von ARP und Routing
Schematische Darstellung von ARP und Routing

Probleme

ARP ist für den Benutzer unsichtbar, sodass das Vorhandensein dieses Protokolls meist nur bemerkt wird, wenn seltene Fehler auftreten.

Die Dauer der Gültigkeit eines ARP-Eintrags (normalerweise wenige Minuten) kann ein Problem darstellen, wenn falsche Einträge vorhanden sind.

  • Solange ein fehlerhafter Eintrag existiert, kann mit dem betreffenden Host nicht kommuniziert werden.
  • Die Fehlfunktion wird häufig nicht dem ARP-Protokoll zugeschrieben, sondern dem Netz oder einem Fehler in der Netzwerkimplementierung.
  • Darüber hinaus ermöglicht nicht jedes Betriebssystem das Erzeugen eines korrigierten Eintrags oder einer Anforderung.

Gravierender ist das Eintragen von Daten in den ARP-Cache aus Paketen, für die keine Anforderung erzeugt wurde (blinder Glaube).

  • Ein überlasteter Host, der eine alte IP-Adresse führt, antwortet mit großer Wahrscheinlichkeit als letzter auf eine ARP-Anforderung mit einer Antwort, die die falsche Adresse enthält.
  • Dieses letzte Paket überschreibt die ARP-Tabelle aller Geräte im Netz, ein fehlerhafter Eintrag bleibt übrig.

Sicherheit

ARP-Spoofing

Mit ARP-Spoofing ist es möglich, absichtlich eine falsche Hardwareadresse in einem Netz zu verteilen.

ARP-Spoofing ist aufgrund der Architektur von ARP sehr einfach zu realisieren.

  • Es müssen einfach ARP-Pakete mit den falschen MAC-/IP-Kombinationen versendet werden.
  • Daraufhin wird keiner der Empfängerrechner irgendwelche Überprüfungen anstellen, sondern die Daten einfach in seinen Cache eintragen.

Moderne Implementierungen ändern die ARP-Tabelle nur für ARP-Antworten, für die vorher vom betreffenden Host eine Anforderung generiert wurde.