3.3    Zusammenführung von MAC- und IP-Adresse

Sie wollen Ihre Datenpakete weltweit transportieren. Dazu benötigen Sie die Hilfe der Netzwerkprotokolle. Sie müssen die MAC-Adresse des Rechners mit seiner IP-Adresse zusammenführen. Hierbei helfen Ihnen die im Folgenden dargestellten Protokolle.

3.3.1    Address Resolution Protocol (ARP), IPv4

Mit dem Address Resolution Protocol (ARP) ermitteln Sie in IPv4-Netzen die MAC-Adresse zu einer IP-Adresse. Sie können damit auch einer MAC-Adresse eine IP-Adresse manuell zuweisen.

Normalerweise arbeitet das ARP-Protokoll ohne direkten Benutzereingriff unauffällig im Hintergrund. Daten sollen von A nach B geschickt werden, und Sie geben jeweils die IP-Adresse auf dem OSI-Layer 3 an. Das ARP-Protokoll fragt alle erreichbaren Netzwerkteilnehmer, ob sie über die gesuchte IP-Adresse verfügen. Der Zielrechner antwortet entsprechend und gibt seine MAC-Adresse dem Fragesteller bekannt. Die Kommunikation zwischen den beiden wird nunmehr aufgebaut. Das Beispiel in Abbildung 3.1 zeigt Ihnen den Ablauf detailliert. Der linke Rechner sendet die ARP-Anfrage mit der eigenen IP- und MAC-Adresse (IP(S), MAC(S)), die IP-Adresse des Empfängers (IP(E)) und die Broadcast-Adresse ff:ff:ff:ff:ff:ff. Die erreichbaren Rechner prüfen, ob ihnen die angegebene Adresse gehört. Der angesprochene Zielrechner sendet daraufhin ein Paket mit seiner MAC-Adressangabe zurück (MAC(E)). Die anderen Rechner verwerfen das Paket.

Schema einer ARP-Abfrage

Abbildung 3.1     Schema einer ARP-Abfrage

Protokoll einer ARP-Anfrage

Rechner1 stellt die Anfrage:

00:1e:33:0d:e9:f9 > ff:ff:ff:ff:ff:ff, ARP,
length 42: arp who-has 192.168.0.102 tell 192.168.0.103

Rechner1 erhält als Antwort von Rechner2:

00:11:6b:62:93:2e > 00:1e:33:0d:e9:f9, ARP,
length 60: arp reply 192.168.0.102 is-at 00:11:6b:62:93:2e

Nach diesem Austausch steht der weiteren Datenübertragung nichts mehr im Wege.

Beide Rechner speichern normalerweise die erfolgreiche ARP-Anfrage im ARP-Cache. Wie lange die Informationen dort verbleiben, ist unterschiedlich. Gebräuchlich sind Zeiten zwischen 5 und 10 Minuten.

Inhalt der ARP-Caches der beteiligten Rechner

Cache von Rechner1:

192.168.0.102 ether 00:11:6b:62:93:2e  C  eth0

Cache von Rechner2:

? (192.168.0.103) at 00:1e:33:0d:e9:f9 on re0 expires in 1078 seconds 
[ethernet]

Die verschiedenartige Darstellung der Cache-Inhalte resultiert aus der Verwendung verschiedener Betriebssysteme.

Ist die IP-Adresse unbekannt, können Sie mittels des Reverse Address Resolution Protocols (RARP) einen zentralen Rechner kontaktieren und nach der IP-Adresse fragen. Dieses Netzwerkprotokoll ist aber kaum mehr von Bedeutung.

Proxy-ARP und Sicherheit: Im seltenen Fall, dass ein Router zwei Netze mit gleichem IP-Adressbereich verbindet, antwortet der Router anstelle des Zielrechners. Listet man den ARP-Cache auf, taucht die IP-Adresse des Routers anstelle der des Zielrechners auf.

Proxy-ARP oder ARP-Spoofing: Wenn Sie den ARP-Cache des abfragenden Rechners auflisten und finden zu ein und derselben MAC-Adresse verschiedene IP-Adressen, befindet sich entweder ein Proxy-ARP-Server im Netz oder es liegt ARP-Spoofing vor. In diesem Fall hat ein Angreifer vor, den Netzwerkverkehr zu belauschen oder zu manipulieren!

Rechner versenden einen ARP-Broadcast mit der eigenen IP-Adresse als Absender und Ziel mit dem Zweck, die neue, eigene MAC-Adresse allen erreichbaren Rechnern des eigenen Netzwerksegments bekannt zu geben (Gratuitous ARP). Das ist beim Laden oder Netzwerkstart eines Rechners ganz normal. Die benachrichtigten Rechner ergänzen oder ändern daraufhin die entsprechenden Einträge des ARP-Caches. Wenn Sie zwei oder mehrere Rechner redundant betreiben, wird damit allen anderen Teilnehmergeräten der Umstieg auf die Reserve, was das Netzwerk angeht, bekannt gemacht.

3.3.2    Neighbor Discovery Protocol (NDP), IPv6

Was Sie hier im Buch über das ARP-Protokoll für IPv4-Adressen gelesen haben, würde grundsätzlich auch mit IPv6-Adressen funktionieren. In der Praxis kommt aber stattdessen das Neighbor Discovery Protocol (NDP) zum Einsatz. Die Grundlagen hierfür finden Sie in den RFCs 3122 und 4861 hinterlegt, Updates in den RFCs 5942, 6980, 7048, 7527, 7559, 8028, 8319, 8425 und 9131. Auch dieses Protokoll arbeitet unbemerkt vom Benutzer, und normalerweise ist keinerlei Eingriff nötig.

Die Funktionen, Begriffe und Eigenschaften des NDP für IPv6

Bei der Fehlersuche hilft Ihnen Tabelle 3.4 weiter. NDP verwendet mehrere verschiedene ICMPv6-Nachrichten. Allgemeines über ICMP-Nachrichten finden Sie in Kapitel 5, »Steuer- und Fehlercodes mit ICMP und ICMPv6 übertragen«.

Typ

Name

Zweck

133

Router
Solicitation

Netzwerkteilnehmer, die nicht als Router fungieren, können von den Routern im gleichen Netzwerk ein Router Advertisement anfordern. Der oder die erreichbaren Router reagieren sofort und übersenden die gewünschte Nachricht.

134

Router
Advertisement

Router verschicken diese Nachrichten in festen Intervallen oder nach Anforderungen des Typs 133 sofort. Sie geben damit ihre Anwesenheit im Netz bekannt.

135

Neighbor
Solicitation

Rechner überprüfen damit die Erreichbarkeit des Nachbarn oder ermitteln die MAC-Adresse von diesem.

136

Neighbor
Advertisement

Es handelt sich um die Antwort auf die Anfrage des Typs 135, der angefragte Rechner ist erreichbar.

137

Redirect
Message

Router informieren damit andere Netzwerkteilnehmer, wenn es einen anderen, besseren Router zum Erreichen des gewünschten Zieles gibt.

Tabelle 3.4     Nachrichtentypen des NDP

Betrachten Sie den Ablauf einer Adressanfrage mit Antwort.

Protokoll einer Neighbor Solicitation mit Antwort

Anfrage von Rechner1:

16:15:19.726208 IP6 fe80::211:6bff:fe62:932e > fe80::21e:33ff:fe0d:e9f9: 
ICMP6, neighbor solicitation, who has fe80::21e:33ff:fe0d:e9f9, length 32

Antwort von Rechner2:

16:15:19.726249 IP6 fe80::21e:33ff:fe0d:e9f9 > fe80::211:6bff:fe62:932e: 
ICMP6, neighbor advertisement, tgt is fe80::21e:33ff:fe0d:e9f9, length 24

NDP bringt seine Informationen in verschiedenen Caches unter. Sie finden daher die Informationen besser geordnet.

Übersicht über die Caches des NDPs

Aus dem Neighbor Cache können Sie den Zustandswert eines Eintrags auslesen. Sie können damit nicht nur protokollbedingte Netzwerkprobleme eingrenzen. Die Bedeutung dieser Angaben finden Sie in Tabelle 3.5.

Zustand

Bedeutung

Delay

Ablauf der Reachable Time, Versand eines Datenpakets innerhalb der Delay First Probe Time. Kommt innerhalb dieser Zeit keine Quittung, ändert sich der Zustand auf Probe, und eine Neighbor Solicitation wird abgesetzt.

Probe

Zustand während des Wartens auf eine positive Quittung der Neighbor Solicitation. Der Cache-Eintrag verfällt, wenn die vorkonfigurierte Anzahl der Versuche ohne positives Ergebnis durchgeführt wurde.

Stale

Es ist unbekannt, ob der angegebene Nachbarrechner erreichbar ist. Der Zeitpunkt der letzten positiven Quittung liegt länger als die Reachable Time zurück. Der Zustand bleibt bis zum Versenden des nächsten Datenpakets an den hier eingetragenen Rechner bestehen.

Incomplete

der Zustand nach dem Absenden der Neighbor Solicitation und vor dem Eintreffen des Neighbor Advertisement

Reachable

Der Rechner ist erreichbar, da innerhalb der Reachable Time ein Neighbor Advertisement von diesem erhalten wurde.

Tabelle 3.5     Einträge für den Zustandswert im Neighbor Cache des NDP