# Reverse Address Resolution Protocol

| Netzwerk | RARP | RARP |
| Netzzugang | Ethernet | … |
Das Reverse Address Resolution Protocol (RARP) ist ein Netzwerkprotokoll, das die Zuordnung von Hardwareadressen zu Internetadressen ermöglicht. Es gehört zur Vermittlungsschicht der Internetprotokollfamilie.

## Verwendung und Funktionsweise

Beispiel für Ethernet-Netzwerke:
RARP wird verwendet, wenn einem Computer die eigene IP-Adresse nicht bekannt ist.
RARP sendet dazu ein RARP Request-Broadcast mit der eigenen MAC-Adresse als Inhalt an die am Netzwerk angeschlossenen Rechner. Ein RARP-Server, welcher alle Zuordnungen IP- zu MAC-Adressen kennt, sendet daraufhin eine Antwort mit der IP-Adresse an die anfragende MAC-Adresse (RARP-Reply).
Ausgenutzt wird bei RARP, dass den Herstellern weltweit eindeutige Präfixe für MAC-Adressen vergeben werden. Die Hersteller bemühen sich wiederum, weltweit eindeutige MAC-Adressen zu verteilen. In einem Netz der Schicht 2 dürfen keine zwei Geräte dieselbe MAC-Adresse verwenden. Außerhalb eines Schicht-2-Netzes ist dies zwar nicht wünschenswert, jedoch möglich. Die MAC-Adressen können von Benutzern relativ einfach angepasst werden. Daher ist es nicht garantiert, dass eine MAC-Adresse weltweit eindeutig ist.
Die vermeintliche Eindeutigkeit der MAC-Adresse darf nicht als Sicherheitskriterium angewandt werden. Es ist viel zu einfach, MAC-Adressen-Spoofing zu betreiben. Fast alle Betriebssysteme erlauben es gewöhnlichen Benutzern, die MAC-Adresse komfortabel in Konfigurationsmasken oder mit einfachen Dienstprogrammen wie ifconfig (UNIX, Linux) oder ip link (Linux) zu überschreiben. Gültige MAC-Adressen in einem Schicht-2-Netz können durch Abhören des Netzverkehrs ausfindig gemacht werden. Dazu ist lediglich der physische Zugang zum Netzwerk nötig. Die exklusive Vergabe von IP-Adressen nur an registrierte MAC-Adressen über RARP oder DHCP schließt also nicht aus, dass Unberechtigte Zugriff auf das Netzwerk erhalten; dafür ist der Einsatz eines sicheren Authentifizierungsmechanismus wie IEEE 802.1X notwendig.
Die Zuordnungstabelle auf dem RARP-Server, die zu jeder MAC-Adresse die lokal vergebene IP-Adresse enthält, muss vom Systemverwalter manuell gepflegt werden.

## Paketformat

Im Ethernetframe schließt sich das RARP-Paket an den MAC-Header und damit an das Ethernet-Typfeld an. Der Ethernettyp für RARP ist 0x8035. Obwohl das Format für ARP und RARP gleich ist und das Protokoll anhand des Operationsfeldes unterschieden werden könnte, handelt es sich um sehr unterschiedliche Operationen. Der unterschiedliche Ethernettyp unterscheidet die Protokolle bereits auf der unteren Ebene, so dass ARP-Server nicht durch RARP-Pakete und umgekehrt gestört werden können.
ARP- und RARP-Nachrichtenformat am Beispiel Ethernet-MAC-Adressen und IPv4-Adressen :
| Bit 0–7 | Bit 8–15 | Bit 16–23 | Bit 24–31 |
| Hardwareadresstyp (1) | Hardwareadresstyp (1) | Protokolladresstyp (0x0800) | Protokolladresstyp (0x0800) |
| Hardwareadressgröße (6) | Protokolladressgröße (4) | Operation | Operation |
| Quell-MAC-Adresse ||||
| Quell-MAC-Adresse | Quell-MAC-Adresse | Quell-IP-Adresse | Quell-IP-Adresse |
| Quell-IP-Adresse | Quell-IP-Adresse | Ziel-MAC-Adresse | Ziel-MAC-Adresse |
| Ziel-MAC-Adresse ||||
| Ziel-IP-Adresse ||||
Erläuterung der Felder:
* Operation (2 Byte): Enthält den Wert, der angibt, welche Operation ausgeführt werden soll (3 für RARP Request, 4 für RARP Reply).
* Quell-MAC-Adresse (6 Byte): Enthält in einem RARP Request-Paket die MAC-Adresse des Senders. In einem RARP Reply enthält es die MAC-Adresse des antwortenden Servers.
* Quell-IP-Adresse (4 Byte): Ist bei einem RARP Request undefiniert. In einem RARP Reply enthält es die IP-Adresse des antwortenden Servers.
* Ziel-MAC-Adresse (6 Byte): Enthält in einem RARP Request-Paket die MAC-Adresse des Senders. In einem RARP Reply enthält es die MAC-Adresse des anfragenden Hosts.
* Ziel-IP-Adresse (4 Byte): Ist bei einem RARP Request undefiniert. In einem RARP Reply enthält es die IP-Adresse des anfragenden Hosts.

## Probleme

Ethernet-Broadcasts sind auf Subnetze beschränkt, so dass RARP nur in einem Subnetz eingesetzt werden kann. Wird ein lokales Netzwerk (LAN) in Subnetze aufgeteilt, muss in jedem dieser Subnetze, in dem RARP-fähige Terminals oder Workstations eingesetzt werden, ein eigener RARP-Server vorhanden sein.
Durch RARP erfährt ein Rechner nur seine IP-Adresse. Zu einer vollständigen Konfiguration einer Netzwerkschnittstelle für Endgeräte gehört aber mindestens noch die Netzmaske und das Default-Gateway. IP-Adressen wurden früher, vor der Einführung der Netzmasken, in Klassen eingeteilt, deren Netzmaske bekannt ist. Im Falle von Subnetting ist diese Netzmaske jedoch falsch. Auch das Setzen von weiteren Parametern wäre wünschenswert, kann aber nicht über RARP vorgenommen werden. RARP ist kein Ersatz für DHCP.

## RARP und TFTP

Nach RARP wird häufig TFTP (Trivial File Transfer Protocol) eingesetzt, das z. B. bei Diskless-Workstations einen Speicherabzug des Betriebssystems an den Rechner überträgt. Erst nachdem dieser Speicherabzug in den Speicher der Workstation geladen ist, kann sie hochgefahren werden. Wird RARP eingesetzt, so kann weder der Name des Speicherabzugs noch die Adresse des TFTP-Servers übergeben werden.
Frühe Diskless-Workstations der Firma Sun Microsystems verwenden deshalb die hexadezimale Darstellung der IP-Adresse als Dateiname. Zunächst versuchen sie unter der Annahme, dass RARP- und TFTP-Server identisch sind, den TFTP-Transfer mit dem RARP-Server durchzuführen, dessen Adresse sie im Quelladressen-Feld des RARP-Replies finden. Falls dieser eine bestimmte Zeit (3 Sekunden) nicht antwortet, wird der gesamte TFTP-Transfer mit Hilfe von Ethernet-Broadcasts durchgeführt. Der TFTP-Server muss daher nicht mit dem RARP-Server identisch sein. Trotzdem muss auch der TFTP-Server bei diesem Verfahren ein lokaler Rechner auf dem jeweiligen Subnetz sein. Daneben werden unter Umständen viele Broadcast-Frames gesendet, was zu einer Belastung der anderen Geräte im selben Subnetz führt.

## BOOTP und DHCP

Das BOOTP-Protokoll und das darauf aufsetzende DHCP-Protokoll vermeiden die Probleme des RARP-Protokolls. Sie gestatten das Setzen vieler Parameter und damit unter anderem die vollständige Konfiguration der Netzwerkschnittstelle. Falls zusätzlich TFTP verwendet wird, kann der Dateiname und die Serveradresse mehrerer Server übergeben werden. Wird die Adresse eines Gateways bei der Schnittstellenkonfiguration gesetzt, können die TFTP-Server in einem beliebigen Netzwerk stehen, da die Pakete korrekt geroutet werden.
Bei Verwendung eines BOOTP-Helpers auf dem Router kann der BOOTP-Broadcast auch in andere Netzwerke geroutet werden. Die Notwendigkeit eines Servers auf jedem Subnetz entfällt daher. Da die Aufteilung von LANs in Subnetze mittlerweile üblich ist, haben BOOTP und DHCP das RARP-Protokoll fast vollständig verdrängt.