Address Resolution Protocol: Unterschied zwischen den Versionen
Markierung: Ersetzt |
|||
Zeile 2: | Zeile 2: | ||
'''topic''' - Kurzbeschreibung | '''topic''' - Kurzbeschreibung | ||
== Beschreibung == | == Beschreibung == | ||
'''ARP''' ('''A'''ddress '''R'''esolution '''P'''rotocol) ist ein [[Netzwerkprotokoll]], das zu einer Netzwerkadresse der [[Internetschicht]] die physische Adresse (Hardware-Adresse) der [[Netzzugangsschicht]] ermittelt und diese Zuordnung gegebenenfalls in den ''ARP-Tabellen'' der beteiligten Rechner hinterlegt. | |||
Es wird im Zusammenhang mit [[IPv4]]-Adressierung auf [[Ethernet]]-[[Rechnernetz|Netzen]], also zur Ermittlung von [[MAC-Adresse]]n zu gegebenen [[IP-Adresse]]n verwendet | |||
* Für [[IPv6]] wird diese Funktionalität nicht von ARP, sondern durch das [[Neighbor Discovery Protocol]] (NDP) bereitgestellt. | |||
* Zuordnung von Ebene 3 (IP-) Adressen zu Ebene 2 (MAC-) Adressen | |||
* Um IP-Pakete über Ethernet zu verschicken, ist noch eine Zuordnung der Adressierung von IP auf die Adressierung von Ethernet nötig | |||
* Diese Zuordnung übernimmt das ARP - das Address Resolution Protocol | |||
* ARP ist ein einfaches Protokoll, das auf Ethernet-Broadcasts basiert | |||
* Jeder Host der über Ethernet an ein Netzwerk angeschlossen ist unterhält eine Tabelle | |||
* Diese Tabelle (ARP-Cache) enthält Einträge, die für alle bekannten IP-Adressen das Ethernet-Device und die MAC-Adresse angeben | |||
* ARP-Einträge können entweder statisch gesetzt werden (wenn die MAC-Adresse bekannt ist) oder dynamisch angelegt werden (über das Protokoll) | |||
* Ist ein Paket an eine IP-Adresse zu versenden, für die es im Cache keinen Eintrag gibt, wird ein Broadcast gesendet und nach der IP gefragt | |||
* Das System, welches die IP besitzt, antwortet mit einem ARP-Reply | |||
* Danach wird ein neuer Eintrag in den ARP-Cache eingefügt | |||
* Dynamische ARP-Einträge haben eine begrenzte Gültigkeit und werden nach gewisser Zeit gelöscht | |||
* Um auf Veränderungen der IP- oder MAC-Adresse reagieren zu können | |||
== 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 [[Bit]]s 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. | |||
== Namens- und Adressauflösung == | |||
== Einordnung ins DoD-Modell == | |||
{| class="wikitable" | |||
! style="background:#C0C0FF" colspan="2" font="size:larger" | ARP (Address Resolution Protocol) | |||
|- | |||
! Familie: | |||
| [[Internetprotokollfamilie]] | |||
|- | |||
! Einsatzgebiet: | |||
| Netzwerkadressenzuordnung | |||
|- | |||
| align="center" colspan="2" |{{Netzwerk-TCP-IP-Sicherungsprotokoll|ARP|IP=[[IPv4]]}} | |||
|- | |||
! Standards: | |||
| RFC 826 (1982) | |||
|} | |||
'''ARP - Eigenschaften''' | |||
* RFC 826 | |||
* Setzt auf dem Data Link Layer (Ethernet, TR, etc.) auf | |||
* (Ethernet-) Typefeld: 08-06 | |||
== Datagramm == | |||
Das ARP-Paket schließt sich an den Ethernet-MAC-Header an. | |||
* Das Typfeld im Ethernet-Frame wird auf 0x0806 (2054) gesetzt. | |||
* Diese Nummer ist für das ARP-Protokoll reserviert. | |||
* Dadurch lassen sich ARP-Pakete von Paketen anderer Protokolle wie beispielsweise IP unterscheiden. | |||
Da das Paket sehr kurz ist, müssen in der Regel im Ethernet-Frame zwischen ARP-Paket und CRC zusätzliche Byte eingefügt werden (Padding), um die minimale Framelänge von 64 Byte zu erreichen. | |||
Obwohl ARP ursprünglich für IPv4 und MAC-Adressen entwickelt wurde, sind im Paket Adresstypen und Protokollgrößenfelder vorgesehen. | |||
* Dadurch ist ARP auch für andere Protokolle geeignet. | |||
* Für [[IPv6]] könnten die Protokolladressgröße statt auf vier auf 16 Byte gesetzt und die Adressfelder auf 128 Bit (= 16 Byte) verlängert werden, jedoch wird ARP für IPv6 durch das [[Neighbor Discovery Protocol]] (NDP) ersetzt, welches auf [[ICMPv6]] basiert. | |||
{| 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 Byte) | |||
|- | |||
! 10 | |||
| colspan="16" style="background:#f0fff0"| (nächste 2 Byte) | |||
|- | |||
! 12 | |||
| colspan="16" style="background:#f0fff0"| (letzte 2 Byte) | |||
|- | |||
! 14 | |||
| colspan="16" style="background:#d0ffd0"| Quell-IP-Adresse (erste 2 Byte) | |||
|- | |||
! 16 | |||
| colspan="16" style="background:#d0ffd0"| (letzte 2 Byte) | |||
|- | |||
! 18 | |||
| colspan="16" style="background:#f0f0ff"| Ziel-MAC-Adresse (erste 2 Byte) | |||
|- | |||
! 20 | |||
| colspan="16" style="background:#f0f0ff"| (nächste 2 Byte) | |||
|- | |||
! 22 | |||
| colspan="16" style="background:#f0f0ff"| (letzte 2 Byte) | |||
|- | |||
! 24 | |||
| colspan="16" style="background:#d0d0ff"| Ziel-IP-Adresse (erste 2 Byte) | |||
|- | |||
! 26 | |||
| colspan="16" style="background:#d0d0ff"| (letzte 2 Byte) | |||
|} | |||
{| class="wikitable sortable" | |||
|- | |||
! Feld !! Länge !! Beschreibung | |||
|- | |||
|'''Hardwareadresstyp''' || 2 Byte || Typ der MAC-Adresse im Paket (für Ethernet/ <code>1</code>). | |||
|- | |||
|'''Protokolladresstyp''' || 2 Byte || Protokolltyp, der für die MAC-Adresse angefordert wird (für IPv4-Adressen: <code>0x0800 (2048)</code>). | |||
|- | |||
|'''Hardwareadressgröße''' || 1 Byte || Größe der MAC-Adresse (für Ethernet/ <code>6</code>). | |||
|- | |||
|'''Protokolladressgröße''' || 1 Byte || Größe des Protokolls (für IPv4: <code>4</code>). | |||
|- | |||
|'''Operation''' || 2 Byte || Wert, der angibt, welche Operation ausgeführt werden soll (<code>1</code> für ARP-Anforderung, <code>2</code> für ARP-Antwort). | |||
|- | |||
|'''Quell-MAC-Adresse''' || 6 Byte || 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 Byte || 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 || Wird in einer ARP-Anforderung ignoriert (meist 00:00:00:00:00:00<sub>16</sub>). In einer ARP-Antwort enthält es die MAC-Adresse des anfragenden Hosts. | |||
|- | |||
|'''Ziel-IP-Adresse''' || 4 Byte || Bei einer ARP-Anforderung die IP-Adresse des gesuchten Hosts. In einer ARP-Antwort enthält es die IP-Adresse des anfragenden Hosts. | |||
|} | |||
== Ablauf einer Adressauflösung durch ARP == | |||
# Rechner ‚A‘ sucht die MAC-Adresse von Rechner ‚B‘ | |||
# ARP-Cache wird überprüft | |||
# ARP-Anforderung wird gesendet (Broadcast) | |||
# ARP-Eintrag von Rechner ‚A‘ wird dem ARP-Cache hinzugefügt | |||
# ARP-Antwort wird gesendet (Unicast) | |||
# ARP-Eintrag wird von Rechner ‚B‘ wird dem ARP-Cache hinzugefügt | |||
# IP-Pakete werden gesendet | |||
== Adressauflösung == | |||
== Ablaufverfolgung == | |||
== Ablaufdiagramm == | |||
== Adressauflösung über Subnetzgrenzen (Routing) == | |||
== Spezielle ARP-Nachrichten == | |||
=== Proxy ARP === | |||
[[Proxy (Rechnernetz)|Proxy]] ARP erlaubt einem Router, ARP-Anforderungen für Hosts zu beantworten. | |||
Die Hosts befinden sich dabei in durch einen Router getrennten Netzen – verwenden untypischerweise jedoch den gleichen [[Classless Inter-Domain Routing|IP-Adressbereich]]. | |||
* Bei der Kommunikation ist für die Hosts der Router ''transparent'', d. h. | |||
* er braucht nicht speziell angesprochen zu werden, sondern die Hosts können wie gewöhnlich Pakete über verschiedene Netze hinweg versenden. | |||
Sendet Computer A eine ARP-Anforderung an Computer B, reagiert der dazwischen liegende Router anstelle des Computers B mit einer ARP-Antwort und der Hardware-Adresse der Schnittstelle (MAC-Adresse des Ports am Router), auf der die Anfrage empfangen wurde. | |||
* Der anfragende Computer A sendet dann seine [[Daten]] an den Router, der sie dann an Computer B weiterleitet. | |||
Proxy ARP kann man am ARP-Cache von Computer A erkennen. | |||
* Falls für mehrere IP-Adressen dieselbe MAC-Adresse eingetragen ist, arbeitet der Router mit dieser MAC-Adresse als Proxy. | |||
* Die Einträge können auch ein Hinweis auf einen [[Angriff]] durch [[ARP-Spoofing]] sein. | |||
* Alternative zum Routing | |||
* Es gibt auch den Fall, dass ein System die IP-Pakete für ein anderes entgegennimmt und diese an das System weiterleitet | |||
* Gerade für Firewall-System ist dies nicht ungewöhnlich | |||
* In diesem Fall muss das System den ARP-Request für diese IP mit seiner eigenen MAC-Adresse beantworten | |||
* Dieses Verfahren nennt man “Proxy ARP” | |||
* Kein Protokoll, sondern Programm (Daemon) auf Router | |||
* Leitet ARP-Anfragen an Routing-Table weiter | |||
* Erspart (temporär) Routingeinträge auf Host | |||
* Belastet den Router durch notwendige zusätzliche ARP-Bearbeitung | |||
=== Gratuitous ARP === | |||
''Gratuitous ARP'' (engl. „unaufgefordertes ARP“) bezeichnet eine spezielle Verwendung von ARP. | |||
* Dabei sendet ein Host ein ARP-Anforderungs-Broadcast, bei dem er seine eigene IP-Adresse als Quell- und Ziel-IP-Adresse einträgt. | |||
* Damit teilt er seine gegebenenfalls neue MAC-Adresse unaufgefordert mit. | |||
* Das kann mehreren Zwecken dienen: | |||
# Normalerweise darf keine Antwort kommen, denn eine IP-Adresse muss in einem Netz eindeutig sein. | |||
* Bekommt er trotzdem eine Antwort, ist das für den [[Systemadministrator|Administrator]] ein Hinweis darauf, dass ein Host nicht richtig konfiguriert ist, d. h. | |||
* die designierte IP-Adresse bereits anderweitig genutzt wird. | |||
# Jeder Host aktualisiert seinen ARP-Cache. | |||
* Das ist beispielsweise dann nützlich, wenn die Netzwerkkarte eines Rechners ausgetauscht wurde und die anderen Hosts über die neue MAC-Adresse informiert werden sollen. ''Gratuitous ARP'' geschieht deshalb normalerweise beim [[Booten]] eines Computers. | |||
# Wenn zwei Server aus Gründen der Ausfallsicherheit als Server und Ersatzserver aufgebaut sind und sich eine IP-Adresse teilen und der aktive Verkehr vom einen auf den anderen geschwenkt werden soll, ist die IP-Adresse jetzt über eine andere MAC-Adresse zu erreichen. | |||
* Diese neue MAC-/IP-Adress-Zuordnung muss bekannt gemacht werden. | |||
* Sonst bekommt niemand den Wechsel mit. | |||
# In einem ''[[Mobile IP]]''-Szenario sendet der ''Home Agent'' einen ''Gratuitous ARP'', wenn sich der ''Mobile Host'' aus dem Heimatnetz entfernt, um die Pakete stellvertretend für diesen zu empfangen. | |||
* Analog sendet der ''Mobile Host'' einen ''Gratuitous ARP'', sobald er sich wieder im Netz befindet. | |||
=== RARP – Reverse-ARP === | |||
Das [[Reverse Address Resolution Protocol| Reverse-ARP (RARP)]] funktioniert umgekehrt zu ARP. | |||
* Es kann also MAC-Adressen zu IP-Adressen auflösen. | |||
* Dies ist für die Ermittlung der eigenen IP-Adresse bei Geräten nützlich, bei denen keine dauerhafte Speicherung oder Zuweisung einer Adresse vorgesehen ist. | |||
* Beide Protokolle besitzen das gleiche Paketformat. | |||
* Die Anwendungsbereiche von RARP und ARP unterscheiden sich jedoch stark voneinander. | |||
=== ARP-Spoofing === | |||
Mit [[ARP-Spoofing]] ist es möglich, absichtlich eine falsche Hardwareadresse in einem Netz zu verteilen. | |||
* Dadurch kann der Datenverkehr für einen Rechner auf einen anderen umgelenkt und eventuell von diesem sogar verändert werden ([[Man-in-the-Middle-Angriff]]). | |||
* Das stellt ein [[Netzwerksicherheit|Sicherheitsproblem]] dar. | |||
ARP-Spoofing ist aufgrund der Architektur von ARP sehr einfach zu realisieren. | |||
* Es müssen einfach ARP-Pakete mit den falschen MAC-/IP-Kombinationen versendet werden. | |||
* Daraufhin wird keiner der Empfängerrechner irgendwelche Überprüfungen anstellen, sondern die Daten einfach in seinen Cache eintragen. | |||
Moderne [[Implementierung]]en ändern die ARP-Tabelle nur für ARP-Antworten, für die vorher vom betreffenden Host eine Anforderung generiert wurde. | |||
== Anhang == | == Anhang == | ||
=== Siehe auch === | === Siehe auch === |
Version vom 4. Mai 2023, 09:43 Uhr
ARP (Address Resolution Protocol) - Adressauflösung von IP-Adressen in MAC-Adressen topic - Kurzbeschreibung
Beschreibung
ARP (Address Resolution Protocol) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physische Adresse (Hardware-Adresse) der Netzzugangsschicht ermittelt und diese Zuordnung gegebenenfalls in den ARP-Tabellen der beteiligten Rechner hinterlegt.
Es wird im Zusammenhang mit IPv4-Adressierung auf Ethernet-Netzen, also zur Ermittlung von MAC-Adressen zu gegebenen IP-Adressen verwendet
- Für IPv6 wird diese Funktionalität nicht von ARP, sondern durch das Neighbor Discovery Protocol (NDP) bereitgestellt.
- Zuordnung von Ebene 3 (IP-) Adressen zu Ebene 2 (MAC-) Adressen
- Um IP-Pakete über Ethernet zu verschicken, ist noch eine Zuordnung der Adressierung von IP auf die Adressierung von Ethernet nötig
- Diese Zuordnung übernimmt das ARP - das Address Resolution Protocol
- ARP ist ein einfaches Protokoll, das auf Ethernet-Broadcasts basiert
- Jeder Host der über Ethernet an ein Netzwerk angeschlossen ist unterhält eine Tabelle
- Diese Tabelle (ARP-Cache) enthält Einträge, die für alle bekannten IP-Adressen das Ethernet-Device und die MAC-Adresse angeben
- ARP-Einträge können entweder statisch gesetzt werden (wenn die MAC-Adresse bekannt ist) oder dynamisch angelegt werden (über das Protokoll)
- Ist ein Paket an eine IP-Adresse zu versenden, für die es im Cache keinen Eintrag gibt, wird ein Broadcast gesendet und nach der IP gefragt
- Das System, welches die IP besitzt, antwortet mit einem ARP-Reply
- Danach wird ein neuer Eintrag in den ARP-Cache eingefügt
- Dynamische ARP-Einträge haben eine begrenzte Gültigkeit und werden nach gewisser Zeit gelöscht
- Um auf Veränderungen der IP- oder MAC-Adresse reagieren zu können
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.
Namens- und Adressauflösung
Einordnung ins DoD-Modell
ARP (Address Resolution Protocol) | |
---|---|
Familie: | Internetprotokollfamilie |
Einsatzgebiet: | Netzwerkadressenzuordnung |
Vorlage:Netzwerk-TCP-IP-Sicherungsprotokoll | |
Standards: | RFC 826 (1982) |
ARP - Eigenschaften
- RFC 826
- Setzt auf dem Data Link Layer (Ethernet, TR, etc.) auf
- (Ethernet-) Typefeld: 08-06
Datagramm
Das ARP-Paket schließt sich an den Ethernet-MAC-Header an.
- Das Typfeld im Ethernet-Frame wird auf 0x0806 (2054) gesetzt.
- Diese Nummer ist für das ARP-Protokoll reserviert.
- Dadurch lassen sich ARP-Pakete von Paketen anderer Protokolle wie beispielsweise IP unterscheiden.
Da das Paket sehr kurz ist, müssen in der Regel im Ethernet-Frame zwischen ARP-Paket und CRC zusätzliche Byte eingefügt werden (Padding), um die minimale Framelänge von 64 Byte zu erreichen.
Obwohl ARP ursprünglich für IPv4 und MAC-Adressen entwickelt wurde, sind im Paket Adresstypen und Protokollgrößenfelder vorgesehen.
- Dadurch ist ARP auch für andere Protokolle geeignet.
- Für IPv6 könnten die Protokolladressgröße statt auf vier auf 16 Byte gesetzt und die Adressfelder auf 128 Bit (= 16 Byte) verlängert werden, jedoch wird ARP für IPv6 durch das Neighbor Discovery Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
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 Byte) | |||||||||||||||
10 | (nächste 2 Byte) | |||||||||||||||
12 | (letzte 2 Byte) | |||||||||||||||
14 | Quell-IP-Adresse (erste 2 Byte) | |||||||||||||||
16 | (letzte 2 Byte) | |||||||||||||||
18 | Ziel-MAC-Adresse (erste 2 Byte) | |||||||||||||||
20 | (nächste 2 Byte) | |||||||||||||||
22 | (letzte 2 Byte) | |||||||||||||||
24 | Ziel-IP-Adresse (erste 2 Byte) | |||||||||||||||
26 | (letzte 2 Byte) |
Feld | Länge | Beschreibung |
---|---|---|
Hardwareadresstyp | 2 Byte | Typ der MAC-Adresse im Paket (für Ethernet/ 1 ).
|
Protokolladresstyp | 2 Byte | Protokolltyp, der für die MAC-Adresse angefordert wird (für IPv4-Adressen: 0x0800 (2048) ).
|
Hardwareadressgröße | 1 Byte | Größe der MAC-Adresse (für Ethernet/ 6 ).
|
Protokolladressgröße | 1 Byte | Größe des Protokolls (für IPv4: 4 ).
|
Operation | 2 Byte | Wert, der angibt, welche Operation ausgeführt werden soll (1 für ARP-Anforderung, 2 für ARP-Antwort).
|
Quell-MAC-Adresse | 6 Byte | 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 Byte | 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 | Wird in einer ARP-Anforderung ignoriert (meist 00:00:00:00:00:0016). In einer ARP-Antwort enthält es die MAC-Adresse des anfragenden Hosts. |
Ziel-IP-Adresse | 4 Byte | Bei einer ARP-Anforderung die IP-Adresse des gesuchten Hosts. In einer ARP-Antwort enthält es die IP-Adresse des anfragenden Hosts. |
Ablauf einer Adressauflösung durch ARP
- Rechner ‚A‘ sucht die MAC-Adresse von Rechner ‚B‘
- ARP-Cache wird überprüft
- ARP-Anforderung wird gesendet (Broadcast)
- ARP-Eintrag von Rechner ‚A‘ wird dem ARP-Cache hinzugefügt
- ARP-Antwort wird gesendet (Unicast)
- ARP-Eintrag wird von Rechner ‚B‘ wird dem ARP-Cache hinzugefügt
- IP-Pakete werden gesendet
Adressauflösung
Ablaufverfolgung
Ablaufdiagramm
Adressauflösung über Subnetzgrenzen (Routing)
Spezielle ARP-Nachrichten
Proxy ARP
Proxy ARP erlaubt einem Router, ARP-Anforderungen für Hosts zu beantworten. Die Hosts befinden sich dabei in durch einen Router getrennten Netzen – verwenden untypischerweise jedoch den gleichen IP-Adressbereich.
- Bei der Kommunikation ist für die Hosts der Router transparent, d. h.
- er braucht nicht speziell angesprochen zu werden, sondern die Hosts können wie gewöhnlich Pakete über verschiedene Netze hinweg versenden.
Sendet Computer A eine ARP-Anforderung an Computer B, reagiert der dazwischen liegende Router anstelle des Computers B mit einer ARP-Antwort und der Hardware-Adresse der Schnittstelle (MAC-Adresse des Ports am Router), auf der die Anfrage empfangen wurde.
- Der anfragende Computer A sendet dann seine Daten an den Router, der sie dann an Computer B weiterleitet.
Proxy ARP kann man am ARP-Cache von Computer A erkennen.
- Falls für mehrere IP-Adressen dieselbe MAC-Adresse eingetragen ist, arbeitet der Router mit dieser MAC-Adresse als Proxy.
- Die Einträge können auch ein Hinweis auf einen Angriff durch ARP-Spoofing sein.
- Alternative zum Routing
- Es gibt auch den Fall, dass ein System die IP-Pakete für ein anderes entgegennimmt und diese an das System weiterleitet
- Gerade für Firewall-System ist dies nicht ungewöhnlich
- In diesem Fall muss das System den ARP-Request für diese IP mit seiner eigenen MAC-Adresse beantworten
- Dieses Verfahren nennt man “Proxy ARP”
- Kein Protokoll, sondern Programm (Daemon) auf Router
- Leitet ARP-Anfragen an Routing-Table weiter
- Erspart (temporär) Routingeinträge auf Host
- Belastet den Router durch notwendige zusätzliche ARP-Bearbeitung
Gratuitous ARP
Gratuitous ARP (engl. „unaufgefordertes ARP“) bezeichnet eine spezielle Verwendung von ARP.
- Dabei sendet ein Host ein ARP-Anforderungs-Broadcast, bei dem er seine eigene IP-Adresse als Quell- und Ziel-IP-Adresse einträgt.
- Damit teilt er seine gegebenenfalls neue MAC-Adresse unaufgefordert mit.
- Das kann mehreren Zwecken dienen:
- Normalerweise darf keine Antwort kommen, denn eine IP-Adresse muss in einem Netz eindeutig sein.
- Bekommt er trotzdem eine Antwort, ist das für den Administrator ein Hinweis darauf, dass ein Host nicht richtig konfiguriert ist, d. h.
- die designierte IP-Adresse bereits anderweitig genutzt wird.
- Jeder Host aktualisiert seinen ARP-Cache.
- Das ist beispielsweise dann nützlich, wenn die Netzwerkkarte eines Rechners ausgetauscht wurde und die anderen Hosts über die neue MAC-Adresse informiert werden sollen. Gratuitous ARP geschieht deshalb normalerweise beim Booten eines Computers.
- Wenn zwei Server aus Gründen der Ausfallsicherheit als Server und Ersatzserver aufgebaut sind und sich eine IP-Adresse teilen und der aktive Verkehr vom einen auf den anderen geschwenkt werden soll, ist die IP-Adresse jetzt über eine andere MAC-Adresse zu erreichen.
- Diese neue MAC-/IP-Adress-Zuordnung muss bekannt gemacht werden.
- Sonst bekommt niemand den Wechsel mit.
- In einem Mobile IP-Szenario sendet der Home Agent einen Gratuitous ARP, wenn sich der Mobile Host aus dem Heimatnetz entfernt, um die Pakete stellvertretend für diesen zu empfangen.
- Analog sendet der Mobile Host einen Gratuitous ARP, sobald er sich wieder im Netz befindet.
RARP – Reverse-ARP
Das Reverse-ARP (RARP) funktioniert umgekehrt zu ARP.
- Es kann also MAC-Adressen zu IP-Adressen auflösen.
- Dies ist für die Ermittlung der eigenen IP-Adresse bei Geräten nützlich, bei denen keine dauerhafte Speicherung oder Zuweisung einer Adresse vorgesehen ist.
- Beide Protokolle besitzen das gleiche Paketformat.
- Die Anwendungsbereiche von RARP und ARP unterscheiden sich jedoch stark voneinander.
ARP-Spoofing
Mit ARP-Spoofing ist es möglich, absichtlich eine falsche Hardwareadresse in einem Netz zu verteilen.
- Dadurch kann der Datenverkehr für einen Rechner auf einen anderen umgelenkt und eventuell von diesem sogar verändert werden (Man-in-the-Middle-Angriff).
- Das stellt ein Sicherheitsproblem dar.
ARP-Spoofing ist aufgrund der Architektur von ARP sehr einfach zu realisieren.
- Es müssen einfach ARP-Pakete mit den falschen MAC-/IP-Kombinationen versendet werden.
- Daraufhin wird keiner der Empfängerrechner irgendwelche Überprüfungen anstellen, sondern die Daten einfach in seinen Cache eintragen.
Moderne Implementierungen ändern die ARP-Tabelle nur für ARP-Antworten, für die vorher vom betreffenden Host eine Anforderung generiert wurde.
Anhang
Siehe auch
Sicherheit
Dokumentation
RFC
Man-Pages
Info-Pages
Links
Einzelnachweise
Projekt
Weblinks
Testfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5