Arp: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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.
+
* Netzwerkprotokoll zur Ermittlung der physikalischen Adresse (MAC) zu einer bekannten Netzwerkadresse (IP).
 +
* Hinterlegt diese Zuordnung in den ARP-Tabellen (ARP-Cache) der beteiligten Rechner.
  
=Funktionsweise am Beispiel Ethernet=
+
= Verwendungen =
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 werden vom Hersteller vergeben und sind theoretisch weltweit eindeutig.
 +
* IP-Adressen (32 Bit) werden von der '''IANA''' (Internet Assigned Numbers Authority) zugeteilt.
 +
* Da IPv4-Adressen nur 32 Bit lang sind, können die 48 Bit langen MAC-Adressen nicht direkt abgebildet werden.
 +
* Es besteht keine feste mathematische Beziehung zwischen MAC- und IP-Adressen.
 +
* Vor dem Senden eines IP-Pakets im selben Subnetz muss dieses in einen Ethernet-Frame verpackt werden.
 +
* Dazu muss der Sender die Ziel-MAC-Adresse kennen.
 +
* Ist diese unbekannt, ermittelt der Rechner sie mithilfe von ARP.
  
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 am Beispiel Ethernet =
 +
* '''ARP-Anforderung (ARP Request):'''
 +
** Wird als Broadcast (Ziel-MAC: ff-ff-ff-ff-ff-ff) an alle Computer des lokalen Netzwerkes gesendet.
 +
** Enthält die MAC- und IP-Adresse des Senders sowie die IP-Adresse des gesuchten Ziels.
 +
** Ziel-MAC-Adresse im ARP-Feld wird mit 00-00-00-00-00-00 gefüllt (Platzhalter für die Suche).
 +
* '''ARP-Antwort (ARP Reply):'''
 +
** Nur der Computer mit der passenden Empfänger-IP-Adresse antwortet.
 +
** Er sendet seine MAC- und IP-Adresse zurück (per Broadcast oder Unicast).
 +
* '''Eintragung:'''
 +
** Der Anfragende trägt die Kombination in seine ARP-Tabelle (ARP-Cache) ein.
 +
** Auch der Zielrechner sollte die Daten des Anfragenden speichern (Vorbereitung für Rückantwort).
  
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-Cache =
 +
* Besteht aus IP-Adresse, MAC-Adresse, Eintragungszeitpunkt und Gültigkeitsdauer.
 +
* Die Verweildauer im Cache ist implementierungsabhängig (bei Linux oft ca. 5 Minuten).
 +
* Jede Nutzung eines Eintrags verlängert dessen Ablaufzeit.
  
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.
+
= Header =
 
 
=Header=
 
 
{| class="wikitable" style="text-align: center; width: 40em;" border=1
 
{| class="wikitable" style="text-align: center; width: 40em;" border=1
 
|-
 
|-
Zeile 68: Zeile 83:
 
|}
 
|}
  
Hardwareadresstyp (2 Byte) enthält den Typ der MAC-Adresse im Paket (für Ethernet: 1).
+
* '''Hardwareadresstyp (2 Byte):''' Typ der MAC-Adresse im Paket (Ethernet: 1).
 +
* '''Protokolladresstyp (2 Byte):''' Protokolltyp der angeforderten Adresse (IPv4: 0x0800).
 +
* '''Hardwareadressgröße (1 Byte):''' Größe der MAC-Adresse (Ethernet: 6).
 +
* '''Protokolladressgröße (1 Byte):''' Größe des Protokolls (IPv4: 4).
 +
* '''Operation (2 Byte):''' Wert der Operation (1 = ARP-Anforderung, 2 = ARP-Antwort).
 +
* '''Quell-MAC-Adresse (6 Byte):''' MAC-Adresse des Senders bzw. antwortenden Hosts.
 +
* '''Quell-IP-Adresse (4 Byte):''' IP-Adresse des Senders bzw. antwortenden Hosts.
 +
* '''Ziel-MAC-Adresse (6 Byte):''' In Anforderung Broadcast (FF:FF:FF:FF:FF:FF), in Antwort MAC des Anfragenden.
 +
* '''Ziel-IP-Adresse (4 Byte):''' IP-Adresse des gesuchten Hosts bzw. des Anfragenden.
  
Protokolladresstyp (2 Byte) enthält den Protokolltyp, der für die MAC-Adresse angefordert wird (für IPv4-Adressen: 0x0800 (2048)).
+
= Verwaltung und Befehle =
 +
* '''ip neighbor show''' (oder '''ip neigh'''): Zeigt die aktuelle ARP-Tabelle an (Nachfolger von arp -n).
 +
* '''ip neighbor flush dev eth0''': Löscht alle Einträge für ein bestimmtes Interface.
 +
* '''arping''': Manuelles Versenden von Anforderungen (z.B. für IP-Konfliktprüfung).
  
Hardwareadressgröße (1 Byte) enthält die Größe der MAC-Adresse (für Ethernet: 6).
+
==== Vergleich der Befehlswelt ====
 +
{| class="wikitable"
 +
! Funktion !! Veraltet (net-tools) !! Aktuell (iproute2)
 +
|-
 +
| Tabelle anzeigen || arp -n || '''ip neigh'''
 +
|-
 +
| Eintrag löschen || arp -d IP || '''ip neigh del IP dev Interface'''
 +
|-
 +
| Eintrag hinzufügen || arp -s IP MAC || '''ip neigh add IP lladdr MAC dev Interface nud reachable'''
 +
|}
  
Protokolladressgröße (1 Byte) enthält die Größe des Protokolls (für IPv4: 4).
+
= Prinzip =
 
 
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]]
 
[[Datei:arp-prinzipv2.png]]
  
=Vorgang=
+
= 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.
+
* Der Client schickt eine ARP-Request an alle Clients im Netz.  
 +
* Alle erhalten und überprüfen den Request.
 +
* Der angesprochene Client antwortet mit einem ARP-Reply inklusive seiner MAC-Adresse.
 
[[Datei:arp-1.png]]
 
[[Datei:arp-1.png]]
 
 
[[Datei:arp-2.png]]
 
[[Datei:arp-2.png]]
  
=Befehle=
+
= Befehle =
Wenn der Befehl "arp -n" eingegeben wird, so erscheint mit drücken der Entertaste die Tabelle mit den ARP-Einträgen angezeigt
+
* Mit dem Befehl "ip neigh" wird die Tabelle mit den ARP-Einträgen angezeigt.
 
 
 
[[Datei:arp-3.png]]
 
[[Datei:arp-3.png]]
  
=Arp in der analogen Welt=
+
= Arp in der analogen Welt =
*Anwendungsfall: Komfortabler Paket-Hol und - Liefer-Dienst
+
* Anwendungsfall: Paket-Hol- und Lieferdienst.
*Beteiligte „Ebenen“
+
* Beteiligte Ebenen:
*„3“: Person A, die Paket an Person B versendet
+
** „3“: Person A versendet Paket an Person B (Name bekannt).
*„2“: Transportdienst mit Logistik im Hintergrund
+
** „2“: Transportdienst (Hausadresse/MAC benötigt).
*Komfortabel
+
* Komfort: Versender muss nur Namen wissen, Paketdienst nutzt Adressbuch (Cache).
*Versender (z.B. A) muss nur Namen des Empfängers (z.B. B) wissen
+
* Transportvorgang:
*Paketdienst verfügt über umfassendes Adressbuch
+
** Paket wird bei A abgeholt.
*Transportvorgang
+
** Fahrer erfragt Zieladresse für B („Wer ist B und wo wohnt er?“) -> ARP.
**Paket wird von Transporter an Hausadresse von A abgeholt
+
** Paket wird im Verteilzentrum umgeladen und an Hausadresse von B geliefert.
*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
+
= Quelle =
 +
* https://www.rrze.fau.de/files/2017/10/20171025-Lokale-Netze-NWA-WS17-18.pdf
 +
* https://de.wikipedia.org/wiki/Address_Resolution_Protocol

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

Address Resolution Protocol (ARP)

  • Netzwerkprotokoll zur Ermittlung der physikalischen Adresse (MAC) zu einer bekannten Netzwerkadresse (IP).
  • Hinterlegt diese Zuordnung in den ARP-Tabellen (ARP-Cache) der beteiligten Rechner.

Verwendungen

  • MAC-Adressen werden vom Hersteller vergeben und sind theoretisch weltweit eindeutig.
  • IP-Adressen (32 Bit) werden von der IANA (Internet Assigned Numbers Authority) zugeteilt.
  • Da IPv4-Adressen nur 32 Bit lang sind, können die 48 Bit langen MAC-Adressen nicht direkt abgebildet werden.
  • Es besteht keine feste mathematische Beziehung zwischen MAC- und IP-Adressen.
  • Vor dem Senden eines IP-Pakets im selben Subnetz muss dieses in einen Ethernet-Frame verpackt werden.
  • Dazu muss der Sender die Ziel-MAC-Adresse kennen.
  • Ist diese unbekannt, ermittelt der Rechner sie mithilfe von ARP.

Funktionsweise am Beispiel Ethernet

  • ARP-Anforderung (ARP Request):
    • Wird als Broadcast (Ziel-MAC: ff-ff-ff-ff-ff-ff) an alle Computer des lokalen Netzwerkes gesendet.
    • Enthält die MAC- und IP-Adresse des Senders sowie die IP-Adresse des gesuchten Ziels.
    • Ziel-MAC-Adresse im ARP-Feld wird mit 00-00-00-00-00-00 gefüllt (Platzhalter für die Suche).
  • ARP-Antwort (ARP Reply):
    • Nur der Computer mit der passenden Empfänger-IP-Adresse antwortet.
    • Er sendet seine MAC- und IP-Adresse zurück (per Broadcast oder Unicast).
  • Eintragung:
    • Der Anfragende trägt die Kombination in seine ARP-Tabelle (ARP-Cache) ein.
    • Auch der Zielrechner sollte die Daten des Anfragenden speichern (Vorbereitung für Rückantwort).

ARP-Cache

  • Besteht aus IP-Adresse, MAC-Adresse, Eintragungszeitpunkt und Gültigkeitsdauer.
  • Die Verweildauer im Cache ist implementierungsabhängig (bei Linux oft ca. 5 Minuten).
  • Jede Nutzung eines Eintrags verlängert dessen Ablaufzeit.

Header

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): Typ der MAC-Adresse im Paket (Ethernet: 1).
  • Protokolladresstyp (2 Byte): Protokolltyp der angeforderten Adresse (IPv4: 0x0800).
  • Hardwareadressgröße (1 Byte): Größe der MAC-Adresse (Ethernet: 6).
  • Protokolladressgröße (1 Byte): Größe des Protokolls (IPv4: 4).
  • Operation (2 Byte): Wert der Operation (1 = ARP-Anforderung, 2 = ARP-Antwort).
  • Quell-MAC-Adresse (6 Byte): MAC-Adresse des Senders bzw. antwortenden Hosts.
  • Quell-IP-Adresse (4 Byte): IP-Adresse des Senders bzw. antwortenden Hosts.
  • Ziel-MAC-Adresse (6 Byte): In Anforderung Broadcast (FF:FF:FF:FF:FF:FF), in Antwort MAC des Anfragenden.
  • Ziel-IP-Adresse (4 Byte): IP-Adresse des gesuchten Hosts bzw. des Anfragenden.

Verwaltung und Befehle

  • ip neighbor show (oder ip neigh): Zeigt die aktuelle ARP-Tabelle an (Nachfolger von arp -n).
  • ip neighbor flush dev eth0: Löscht alle Einträge für ein bestimmtes Interface.
  • arping: Manuelles Versenden von Anforderungen (z.B. für IP-Konfliktprüfung).

Vergleich der Befehlswelt

Funktion Veraltet (net-tools) Aktuell (iproute2)
Tabelle anzeigen arp -n ip neigh
Eintrag löschen arp -d IP ip neigh del IP dev Interface
Eintrag hinzufügen arp -s IP MAC ip neigh add IP lladdr MAC dev Interface nud reachable

Prinzip

Arp-prinzipv2.png

Vorgang

  • Der Client schickt eine ARP-Request an alle Clients im Netz.
  • Alle erhalten und überprüfen den Request.
  • Der angesprochene Client antwortet mit einem ARP-Reply inklusive seiner MAC-Adresse.

Arp-1.png Arp-2.png

Befehle

  • Mit dem Befehl "ip neigh" wird die Tabelle mit den ARP-Einträgen angezeigt.

Arp-3.png

Arp in der analogen Welt

  • Anwendungsfall: Paket-Hol- und Lieferdienst.
  • Beteiligte Ebenen:
    • „3“: Person A versendet Paket an Person B (Name bekannt).
    • „2“: Transportdienst (Hausadresse/MAC benötigt).
  • Komfort: Versender muss nur Namen wissen, Paketdienst nutzt Adressbuch (Cache).
  • Transportvorgang:
    • Paket wird bei A abgeholt.
    • Fahrer erfragt Zieladresse für B („Wer ist B und wo wohnt er?“) -> ARP.
    • Paket wird im Verteilzentrum umgeladen und an Hausadresse von B geliefert.

Quelle