Arp: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Address Resolution Protocol= Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physikalisc…“)
 
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Address Resolution Protocol=
 
=Address Resolution Protocol=
 
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.
 
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.
 +
 +
=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 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.
 +
 +
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.
 +
 +
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=
 +
{| class="wikitable" style="text-align: center; width: 40em;" border=1
 +
|-
 +
! colspan="17" | ARP-Nachrichtenformat am Beispiel Ethernet-MAC-Adressen und IPv4-Adressen
 +
|-
 +
! colspan="1"|octet offset
 +
! colspan="8" width="50%"|0
 +
! colspan="8" width="50%"|1
 +
|-
 +
! 0
 +
| colspan="16"| Hardwareadresstyp
 +
|-
 +
! 2
 +
| colspan="16"| Protokolladresstyp
 +
|-
 +
! 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
 +
| colspan="16" style="background:#f0fff0"| (nächste 2 Bytes)
 +
|-
 +
! 12
 +
| colspan="16" style="background:#f0fff0"| (letzte 2 Bytes)
 +
|-
 +
! 14
 +
| colspan="16" style="background:#d0ffd0"| Quell-IP-Adresse (erste 2 Bytes)
 +
|-
 +
! 16
 +
| colspan="16" style="background:#d0ffd0"| (letzte 2 Bytes)
 +
|-
 +
! 18
 +
| colspan="16" style="background:#f0f0ff"| Ziel-MAC-Adresse (erste 2 Bytes)
 +
|-
 +
! 20
 +
| colspan="16" style="background:#f0f0ff"| (nächste 2 Bytes)
 +
|-
 +
! 22
 +
| colspan="16" style="background:#f0f0ff"| (letzte 2 Bytes)
 +
|-
 +
! 24
 +
| colspan="16" style="background:#d0d0ff"| Ziel-IP-Adresse (erste 2 Bytes)
 +
|-
 +
! 26
 +
| colspan="16" style="background:#d0d0ff"| (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) 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=
 +
Wenn der Befehl "arp -n" eingegeben wird, so erscheint mit drücken der Entertaste die Tabelle mit den ARP-Einträgen angezeigt
 +
 +
[[Datei:arp-3.png]]
 +
 +
=Arp in der analogen Welt=
 +
*Anwendungsfall: Komfortabler Paket-Hol und - Liefer-Dienst
 +
*Beteiligte „Ebenen“
 +
*„3“: Person A, die Paket an Person B versendet
 +
*„2“: Transportdienst mit Logistik im Hintergrund
 +
*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

Aktuelle Version vom 27. März 2023, 10:59 Uhr

Address Resolution Protocol

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.

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

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.

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

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) 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

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. Arp-1.png

Arp-2.png

Befehle

Wenn der Befehl "arp -n" eingegeben wird, so erscheint mit drücken der Entertaste die Tabelle mit den ARP-Einträgen angezeigt

Arp-3.png

Arp in der analogen Welt

  • Anwendungsfall: Komfortabler Paket-Hol und - Liefer-Dienst
  • Beteiligte „Ebenen“
  • „3“: Person A, die Paket an Person B versendet
  • „2“: Transportdienst mit Logistik im Hintergrund
  • 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