ARP - Adressauflösung für TCP/IP

Von der IP-Adresse zur Hardware und zurück

Bei einem Netzwerk auf TCP/IP-Basis werden für den Versand der Datenpakete die physischen Adressen (MAC-Adressen) der Ethernet-Karten benötigt. Diese Adressen werden mit Hilfe des Protokolls ARP in einem Broadcast-Verfahren abgefragt und suksessive «gelernt» bzw. aktualisiert.

Die Zuordnung einer MAC-Adresse zu einer TCP/IP-Adresse erfolgt immer über ein Broadcast-Verfahren an alle Rechner, um allerdings den Broadcast im Netzwerk in einem akzeptablen Rahmen zu halten, verfügt ARP einen lokalen - auf dem Client gehaltenen - Cache von regelmässig genutzten Netzwerk-Adressen.

Konfigurations-Dienst: RARP
Das Reverse Address Resolution Protocol ist der älteste Konfigurationsdienst von TCP/IP, er wird nur noch selten verwendet, zudem meistens nur noch für UNIX-Systeme. RARP wird von Clients verwendet, die ihre eigene IP-Adresse nicht kennen, der Client senden einen RARP-Broadcast in das Netzwerk. Dieses Paket enthält die MAC-Adresse des anfragenden Client, diese ist in der Hardware der Ethernet-Adapters (NIC) vorhanden und weltweit einzigartig. Der RARP-Server beantwortet den Request mit einer gültigen IP-Adresse sofern er folgende Informationen findet:

  • MAC-Adresse und Host-Name in der UNIX-Konfigurationsdatei /etc/ethers
  • Host-Name und IP-Adresse in der UNIX-Konfigurationsdatei /etc/hosts

RARP liefert nur die IP-Adresse zurück, die weiteren Angaben (Sub-Netz-Maske, Standard-Gateway, DNS) müssen manuell konfiguriert werden. ARP und RARP sind Protokolle der «Netzwerk-Zugangsschicht» im OSI-Referenzmodell, Layer 2.

Weitere Dienste zur Verwaltung und Zuteilung der TCP/IP-Konfigurationen sind DHCP und BOOTP, DHCP und BOOTP sind die heute im Einsatz stehenden Konfigurationsdienste für TCP/IP.

ARP in der Praxis
Das Protokoll ARP wird bei der Netzwerk-Kommunikation mit TCP/IP unbemerkt im Hintergrund genutzt. Im OSI-Referenzmodell deckt es die nächste Schicht (2) unterhalb von IP ab.

Vielen Benutzern von TCP/IP-Netzwerk-Rechnern ist die Existenz von ARP gar nicht bekannt (dies ist meistens auch nicht notwendig). Im folgenden praktischen Beispiel aus der Windows-Umgebung wird die Benutzung von ARP aufgezeigt. Die verwendete TCP/IP-Konfiguration des Rechners:

Host-Name . . . . . . . . . : sni10.idvts.unizh.ch
DNS-Server. . . . . . . . . : 130.60.64.12, 130.60.64.51, 130.60.128.5, 130.60.128.3

Ethernet-Adapter DC21X41:
Beschreibung. . . . . . . . : DEC DC21143 PCI Fast Ethernet Adapter
Physische Adresse . . . . . : 00-48-54-02-76-44
DHCP aktiviert. . . . . . . : Ja
IP-Adresse. . . . . . . . . : 130.60.208.166
Subnet Mask . . . . . . . . : 255.255.255.0
Standard-Gateway. . . . . . : 130.60.208.1
DHCP-Server . . . . . . . . : 130.60.208.53
Lease erhalten. . . . . . . : Montag, 1. November 20xx 18:20:05
Lease läuft ab. . . . . . . : Montag, 1. November 20xx 20:20:05
 
Zunächst wird mit dem Befehl arp -a der aktuelle ARP-Cache angezeigt:

Z:\lenzs>arp -a

Schnittstelle: 130.60.208.166 on Interface 2
Internet-Adresse   Physische Adresse   Typ
130.60.208.52      00-48-54-00-e3-d0   dynamisch
130.60.208.53      00-80-5f-3a-97-4a   dynamisch

Die gespeicherten TCP/IP und MAC-Adressen beinhalten die Adresse 130.60.208.53 was dem DHCP-Server des Netzwerks entspricht. Der TCP/IP-Standard-Gateway (130.60.208.1) ist noch nicht im Speicher bzw. Cache eingetragen, da bisher keine Verbindungen ausserhalb des lokalen Netzwerks aufgerufen wurden.

Als nächster Schritt wird mit dem PING-Kommando eine Verbindungskontrolle zum Host mit dem DNS-Eintrag www.stefan-lenz.ch durchgeführt.

Z:\lenzs>ping www.stefan-lenz.ch

PING wird ausgeführt für www.stefan-lenz.ch [157.161.182.163] mit 32 Bytes Daten:
Antwort von 157.161.182.163: Bytes=32 Zeit=40ms TTL=113
Antwort von 157.161.182.163: Bytes=32 Zeit=40ms TTL=113
Antwort von 157.161.182.163: Bytes=32 Zeit=60ms TTL=113
Antwort von 157.161.182.163: Bytes=32 Zeit=40ms TTL=113

Der Server antwortet - wie erwartet - von der angezeigten IP-Adresse mit 4 Datenpaketen (verlustfrei). Die Auswirkungen dieses PING-Befehls im ARP-Cache werden wiederum mit dem Kommando arp -a geprüft.

Z:\lenzs>arp -a

Schnittstelle: 130.60.208.166 on Interface 2
Internet-Adresse   Physische Adresse   Typ
130.60.208.1       00-00-0c-01-52-79   dynamisch
130.60.208.52      00-48-54-00-e3-d0   dynamisch
130.60.208.53      00-80-5f-3a-97-4a   dynamisch

Neu zum ARP-Cache hinzugefügt wurde die IP-Adresse 130.60.208.1 die dem TCP/IP-Standard-Gateway bzw. in diesem Fall dem Internet-Router entspricht. Diese Erweiterung des ARP-Caches erfolgt, da das Betriebssystem diesen neuen Netzwerk-Teilnehmer aufgrund des PING-Befehls erkannt und «gelernt» hat.