Arp

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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