Address Resolution Protocol

Aus Foxwiki

ARP (Address Resolution Protocol) - Adressauflösung von IP-Adressen in MAC-Adressen

Beschreibung

ARP (Address Resolution Protocol) 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 im Zusammenhang mit IPv4-Adressierung auf Ethernet-Netzen, also zur Ermittlung von MAC-Adressen zu gegebenen IP-Adressen verwendet
  • 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

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 mithilfe des ARP zunächst die MAC-Adresse des Zielrechners.

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.
Padding

Da das Paket sehr kurz ist, müssen in der Regel im Ethernet-Frame zwischen ARP-Paket und CRC zusätzliche Byte eingefügt werden (Padding), um die minimale Framelänge von 64 Byte 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 Byte gesetzt und die Adressfelder auf 128 Bit (= 16 Byte) verlängert werden, jedoch wird ARP für IPv6 durch das Neighbor Discovery Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
ARP-Nachrichtenformat

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 Byte)
10 (nächste 2 Byte)
12 (letzte 2 Byte)
14 Quell-IP-Adresse (erste 2 Byte)
16 (letzte 2 Byte)
18 Ziel-MAC-Adresse (erste 2 Byte)
20 (nächste 2 Byte)
22 (letzte 2 Byte)
24 Ziel-IP-Adresse (erste 2 Byte)
26 (letzte 2 Byte)


Feld Länge Beschreibung
Hardwareadresstyp 2 Byte Typ der MAC-Adresse im Paket (für Ethernet/ 1).
Protokolladresstyp 2 Byte Protokolltyp, der für die MAC-Adresse angefordert wird (für IPv4-Adressen: 0x0800 (2048)).
Hardwareadressgröße 1 Byte Größe der MAC-Adresse (für Ethernet/ 6).
Protokolladressgröße 1 Byte Größe des Protokolls (für IPv4: 4).
Operation 2 Byte Wert, der angibt, welche Operation ausgeführt werden soll (1 für ARP-Anforderung, 2 für ARP-Antwort).
Quell-MAC-Adresse 6 Byte 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 Byte 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 Byte 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

Ablaufverfolgung

Ablaufdiagramm

Adressauflösung über Subnetzgrenzen (Routing)

Spezielle ARP-Nachrichten

Proxy ARP

Proxy ARP erlaubt einem Router, ARP-Anforderungen für Hosts zu beantworten.

Die Hosts befinden sich dabei in durch einen Router getrennten Netzen – verwenden untypischerweise jedoch den gleichen IP-Adressbereich.

  • Bei der Kommunikation ist für die Hosts der Router transparent, d. h.
  • er braucht nicht speziell angesprochen zu werden, sondern die Hosts können wie gewöhnlich Pakete über verschiedene Netze hinweg versenden.

Sendet Computer A eine ARP-Anforderung an Computer B, reagiert der dazwischen liegende Router anstelle des Computers B mit einer ARP-Antwort und der Hardware-Adresse der Schnittstelle (MAC-Adresse des Ports am Router), auf der die Anfrage empfangen wurde.

  • Der anfragende Computer A sendet dann seine Daten an den Router, der sie dann an Computer B weiterleitet.
Proxy ARP kann man am ARP-Cache von Computer A erkennen.
  • Falls für mehrere IP-Adressen dieselbe MAC-Adresse eingetragen ist, arbeitet der Router mit dieser MAC-Adresse als Proxy.
  • Die Einträge können auch ein Hinweis auf einen Angriff durch ARP-Spoofing sein.
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

Gratuitous ARP

Gratuitous ARP (engl. „unaufgefordertes ARP“) bezeichnet eine spezielle Verwendung von ARP.

  • Dabei sendet ein Host ein ARP-Anforderungs-Broadcast, bei dem er seine eigene IP-Adresse als Quell- und Ziel-IP-Adresse einträgt.
  • Damit teilt er seine gegebenenfalls neue MAC-Adresse unaufgefordert mit.
  • Das kann mehreren Zwecken dienen:
  1. Normalerweise darf keine Antwort kommen, denn eine IP-Adresse muss in einem Netz eindeutig sein.
  • Bekommt er trotzdem eine Antwort, ist das für den Administrator ein Hinweis darauf, dass ein Host nicht richtig konfiguriert ist, d. h.
  • die designierte IP-Adresse bereits anderweitig genutzt wird.
  1. Jeder Host aktualisiert seinen ARP-Cache.
  • Das ist beispielsweise dann nützlich, wenn die Netzwerkkarte eines Rechners ausgetauscht wurde und die anderen Hosts über die neue MAC-Adresse informiert werden sollen. Gratuitous ARP geschieht deshalb normalerweise beim Booten eines Computers.
  1. Wenn zwei Server aus Gründen der Ausfallsicherheit als Server und Ersatzserver aufgebaut sind und sich eine IP-Adresse teilen und der aktive Verkehr vom einen auf den anderen geschwenkt werden soll, ist die IP-Adresse jetzt über eine andere MAC-Adresse zu erreichen.
  • Diese neue MAC-/IP-Adress-Zuordnung muss bekannt gemacht werden.
  • Sonst bekommt niemand den Wechsel mit.
  1. In einem Mobile IP-Szenario sendet der Home Agent einen Gratuitous ARP, wenn sich der Mobile Host aus dem Heimatnetz entfernt, um die Pakete stellvertretend für diesen zu empfangen.
  • Analog sendet der Mobile Host einen Gratuitous ARP, sobald er sich wieder im Netz befindet.

RARP – Reverse-ARP

Reverse-ARP (RARP) funktioniert umgekehrt zu ARP

  • Es kann MAC-Adressen zu IP-Adressen auflösen
  • Dies ist für die Ermittlung der eigenen IP-Adresse bei Geräten nützlich, bei denen keine dauerhafte Speicherung oder Zuweisung einer Adresse vorgesehen ist.
  • Beide Protokolle besitzen das gleiche Paketformat
  • Die Anwendungsbereiche von RARP und ARP unterscheiden sich jedoch stark voneinander.

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.

Anhang

Siehe auch

Sicherheit

Dokumentation

RFC
Man-Pages
Info-Pages

Links

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