Arp: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=Address Resolution Protocol=
+
== Address Resolution Protocol (ARP) ==
Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physikalische Adresse (Hardwareadresse) der Netzzugangsschicht ermittelt und diese Zuordnung gegebenenfalls in den so genannten ARP-Tabellen der beteiligten Rechner hinterlegt.
 
=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.
+
=== Definition ===
 +
* Ermittelt die physikalische Adresse (MAC) zu einer bekannten logischen Adresse (IP).
 +
* Stellt die Verbindung zwischen Internetschicht (Layer 3) und Netzzugangsschicht (Layer 2) her.
 +
* Speichert Zuordnungen im '''ARP-Cache''' (Tabelle) der beteiligten Rechner.
  
=Funktionsweise am Beispiel Ethernet=
+
=== Verwendung und Notwendigkeit ===
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.
+
* MAC-Adressen (48 Bit) sind hardwaregebunden und weltweit theoretisch eindeutig.
 +
* IP-Adressen (32 Bit bei IPv4) werden logisch vergeben (IANA).
 +
* Da keine feste mathematische Beziehung zwischen IP und MAC existiert, ist ARP für die Kapselung von IP-Paketen in Ethernet-Frames zwingend erforderlich.
 +
* Ohne Ziel-MAC kann ein Ethernet-Frame nicht im lokalen Netz zugestellt werden.
  
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 bzw. 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.
+
=== Funktionsweise (Beispiel Ethernet) ===
  
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 ggf. 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.
+
==== ARP Request (Anfrage) ====
 +
* Sender schickt einen '''Broadcast''' an alle Rechner im lokalen Netz (Ziel-MAC: FF-FF-FF-FF-FF-FF).
 +
* Inhalt: „Wer hat die IP-Adresse X? Bitte antworte an meine IP/MAC-Adresse.
 +
* Das Feld für die gesuchte Ziel-MAC wird im ARP-Header mit 00-00-00-00-00-00 gefüllt.
  
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 Reply (Antwort) ====
 +
* Nur der Rechner mit der gesuchten IP-Adresse reagiert.
 +
* Er sendet seine MAC-Adresse direkt an den Anfragenden zurück (meist als '''Unicast''').
 +
* Der Anfragende trägt die Kombination in seinen ARP-Cache ein.
  
=Header=
+
 
{| class="wikitable" style="text-align: center; width: 40em;" border=1
+
 
|-
+
=== ARP-Cache (Tabelle) ===
! colspan="17" | ARP-Nachrichtenformat am Beispiel Ethernet-MAC-Adressen und IPv4-Adressen
+
* Enthält Zuordnungen von IP- zu MAC-Adressen.
|-
+
* Einträge sind zeitlich begrenzt (Gültigkeitsdauer oft ca. 5 Minuten bei Linux).
! colspan="1"|octet offset
+
* Nutzung eines Eintrags verlängert dessen Ablaufzeit.
! colspan="8" width="50%"|0
+
* Verwaltung über Befehle:
! colspan="8" width="50%"|1
+
** '''arp -a''' oder '''arp -n''': Zeigt die aktuelle Tabelle an.
|-
+
** '''arping''': Manuelles Versenden von ARP-Anforderungen.
! 0
+
 
| colspan="16"| Hardwareadresstyp
+
== ARP Header ==
|-
+
 
! 2
+
{| class="wikitable" style="text-align: center;"
| colspan="16"| Protokolladresstyp
+
! colspan="2" | ARP-Nachrichtenformat (Ethernet & IPv4)
|-
 
! 4
 
| colspan="8"| Hardwareadressgröße
 
| colspan="8"| Protokolladressgröße
 
|-
 
! 6
 
| colspan="16"| Operation
 
|-
 
! 8
 
| colspan="16" style="background:#f0fff0"| Quell-MAC-Adresse (erste 2 Bytes)
 
 
|-
 
|-
! 10
+
| Hardwareadresstyp (z.B. Ethernet = 1) || 2 Byte
| colspan="16" style="background:#f0fff0"| (nächste 2 Bytes)
 
 
|-
 
|-
! 12
+
| Protokolladresstyp (z.B. IPv4 = 0x0800) || 2 Byte
| colspan="16" style="background:#f0fff0"| (letzte 2 Bytes)
 
 
|-
 
|-
! 14
+
| Hardwareadressgröße (z.B. MAC = 6) || 1 Byte
| colspan="16" style="background:#d0ffd0"| Quell-IP-Adresse (erste 2 Bytes)
 
 
|-
 
|-
! 16
+
| Protokolladressgröße (z.B. IP = 4) || 1 Byte
| colspan="16" style="background:#d0ffd0"| (letzte 2 Bytes)
 
 
|-
 
|-
! 18
+
| '''Operation''' (1 = Request / 2 = Reply) || 2 Byte
| colspan="16" style="background:#f0f0ff"| Ziel-MAC-Adresse (erste 2 Bytes)
 
 
|-
 
|-
! 20
+
| style="background:#f0fff0" | Quell-MAC-Adresse || 6 Byte
| colspan="16" style="background:#f0f0ff"| (nächste 2 Bytes)
 
 
|-
 
|-
! 22
+
| style="background:#d0ffd0" | Quell-IP-Adresse || 4 Byte
| colspan="16" style="background:#f0f0ff"| (letzte 2 Bytes)
 
 
|-
 
|-
! 24
+
| style="background:#f0f0ff" | Ziel-MAC-Adresse || 6 Byte
| colspan="16" style="background:#d0d0ff"| Ziel-IP-Adresse (erste 2 Bytes)
 
 
|-
 
|-
! 26
+
| style="background:#d0d0ff" | Ziel-IP-Adresse || 4 Byte
| colspan="16" style="background:#d0d0ff"| (letzte 2 Bytes)
 
 
|}
 
|}
  
Hardwareadresstyp (2 Byte) enthält den Typ der MAC-Adresse im Paket (für Ethernet: 1).
+
== Prinzip und Vorgang ==
 
 
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) ist in einer ARP-Anforderung ein Broadcast (FF:FF:FF:FF:FF:FF). 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.
 
 
 
=Prinzip=
 
[[Datei:arp-prinzipv2.png]]
 
 
 
=Vorgang=
 
Der Client schickt eine ARP-Request an alle Clients im Netz. Darauf hin erhalten und überprüfen alle den ARP-Request und der Angesprochene Client antwortet, indem er einen ARP-Reply mit deren MAC-Adresse sendet.
 
[[Datei:arp-1.png]]
 
 
 
[[Datei:arp-2.png]]
 
  
=Befehle=
+
=== Grafische Darstellung ===
Wenn der Befehl "arp -n" eingegeben wird, so erscheint mit drücken der Entertaste die Tabelle mit den ARP-Einträgen angezeigt
+
* '''Prinzip:''' [[Datei:arp-prinzipv2.png]]
 +
* '''Schritt 1 (Request):''' [[Datei:arp-1.png]]
 +
* '''Schritt 2 (Reply):''' [[Datei:arp-2.png]]
  
[[Datei:arp-3.png]]
+
=== Befehlsbeispiel (arp -n) ===
 +
* [[Datei:arp-3.png]]
  
=Arp in der analogen Welt=
+
== ARP in der analogen Welt ==
*Anwendungsfall: Komfortabler Paket-Hol und - Liefer-Dienst
+
* '''Szenario:''' Paket-Lieferdienst.
*Beteiligte „Ebenen“
+
* '''Ebene 3 (IP):''' Absender A möchte Paket an Empfänger B schicken (Name/Logik).
*„3“: Person A, die Paket an Person B versendet
+
* '''Ebene 2 (MAC):''' Der Transporteur braucht die physische Hausadresse.
*„2“: Transportdienst mit Logistik im Hintergrund
+
* '''Vorgang:''' Der Fahrer (Router/Host) ruft in die Straße (Broadcast): „Wer hier heißt B? Ich brauche die Hausnummer zum Abliefern!“
*Komfortabel
 
*Versender (z.B. A) muss nur Namen des Empfängers (z.B. B) wissen
 
*Paketdienst verfügt über umfassendes Adressbuch
 
*Transportvorgang
 
**Paket wird von Transporter an Hausadresse von A abgeholt
 
*Fahrer nennt Empfänger B, nennt seinen Transporter und erfragt Zieltransporter zum Umladen („ARP“)
 
**Paket wird im Verteilzentrum umgeladen
 
**Paket wird von (Ziel-)Transporter an Hausadresse von B abgeliefert
 
=Quelle=
 
*https://www.rrze.fau.de/files/2017/10/20171025-Lokale-Netze-NWA-WS17-18.pdf
 
  
*https://de.wikipedia.org/wiki/Address_Resolution_Protocol
+
== Quellen ==
 +
* https://www.rrze.fau.de/files/2017/10/20171025-Lokale-Netze-NWA-WS17-18.pdf
 +
* https://de.wikipedia.org/wiki/Address_Resolution_Protocol

Version vom 29. März 2026, 10:24 Uhr

Address Resolution Protocol (ARP)

Definition

  • Ermittelt die physikalische Adresse (MAC) zu einer bekannten logischen Adresse (IP).
  • Stellt die Verbindung zwischen Internetschicht (Layer 3) und Netzzugangsschicht (Layer 2) her.
  • Speichert Zuordnungen im ARP-Cache (Tabelle) der beteiligten Rechner.

Verwendung und Notwendigkeit

  • MAC-Adressen (48 Bit) sind hardwaregebunden und weltweit theoretisch eindeutig.
  • IP-Adressen (32 Bit bei IPv4) werden logisch vergeben (IANA).
  • Da keine feste mathematische Beziehung zwischen IP und MAC existiert, ist ARP für die Kapselung von IP-Paketen in Ethernet-Frames zwingend erforderlich.
  • Ohne Ziel-MAC kann ein Ethernet-Frame nicht im lokalen Netz zugestellt werden.

Funktionsweise (Beispiel Ethernet)

ARP Request (Anfrage)

  • Sender schickt einen Broadcast an alle Rechner im lokalen Netz (Ziel-MAC: FF-FF-FF-FF-FF-FF).
  • Inhalt: „Wer hat die IP-Adresse X? Bitte antworte an meine IP/MAC-Adresse.“
  • Das Feld für die gesuchte Ziel-MAC wird im ARP-Header mit 00-00-00-00-00-00 gefüllt.

ARP Reply (Antwort)

  • Nur der Rechner mit der gesuchten IP-Adresse reagiert.
  • Er sendet seine MAC-Adresse direkt an den Anfragenden zurück (meist als Unicast).
  • Der Anfragende trägt die Kombination in seinen ARP-Cache ein.


ARP-Cache (Tabelle)

  • Enthält Zuordnungen von IP- zu MAC-Adressen.
  • Einträge sind zeitlich begrenzt (Gültigkeitsdauer oft ca. 5 Minuten bei Linux).
  • Nutzung eines Eintrags verlängert dessen Ablaufzeit.
  • Verwaltung über Befehle:
    • arp -a oder arp -n: Zeigt die aktuelle Tabelle an.
    • arping: Manuelles Versenden von ARP-Anforderungen.

ARP Header

ARP-Nachrichtenformat (Ethernet & IPv4)
Hardwareadresstyp (z.B. Ethernet = 1) 2 Byte
Protokolladresstyp (z.B. IPv4 = 0x0800) 2 Byte
Hardwareadressgröße (z.B. MAC = 6) 1 Byte
Protokolladressgröße (z.B. IP = 4) 1 Byte
Operation (1 = Request / 2 = Reply) 2 Byte
Quell-MAC-Adresse 6 Byte
Quell-IP-Adresse 4 Byte
Ziel-MAC-Adresse 6 Byte
Ziel-IP-Adresse 4 Byte

Prinzip und Vorgang

Grafische Darstellung

  • Prinzip: Arp-prinzipv2.png
  • Schritt 1 (Request): Arp-1.png
  • Schritt 2 (Reply): Arp-2.png

Befehlsbeispiel (arp -n)

  • Arp-3.png

ARP in der analogen Welt

  • Szenario: Paket-Lieferdienst.
  • Ebene 3 (IP): Absender A möchte Paket an Empfänger B schicken (Name/Logik).
  • Ebene 2 (MAC): Der Transporteur braucht die physische Hausadresse.
  • Vorgang: Der Fahrer (Router/Host) ruft in die Straße (Broadcast): „Wer hier heißt B? Ich brauche die Hausnummer zum Abliefern!“

Quellen