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.
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
-
Neighbor Advertisement: Antwort auf eine Anfrage nach der MAC-Adresse (Neighbor Solicitation)
-
Finden von Routern, die Pakete in weitere Netzwerke weiterreichen
-
Duplicate IP Address Detection: Zwei Knoten (Netzwerkteilnehmer) können niemals die gleiche IP-Adresse bekommen.
-
Kombination von ARP und ICMP Router Discovery: Auffinden von Routern im gleichen Netzwerk
-
Neighbor Unreachability Detection: automatische Feststellung nicht erreichbarer Knoten im eigenen Netzwerk
-
Autokonfiguration von IPv6-Adressen
-
Wegfall der Subnetzmasken
-
neue Sicherheitsfunktionen
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 |
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 verschicken diese Nachrichten in festen Intervallen oder nach Anforderungen des Typs 133 sofort. Sie geben damit ihre Anwesenheit im Netz bekannt. |
|
135 |
Rechner überprüfen damit die Erreichbarkeit des Nachbarn oder ermitteln die MAC-Adresse von diesem. |
|
136 |
Es handelt sich um die Antwort auf die Anfrage des Typs 135, der angefragte Rechner ist erreichbar. |
|
137 |
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
-
Destination Cache: enthält Adressen, an die erfolgreich Daten gesendet wurden, und die Angabe für den nächsten Hop, den die Pakete benutzen sollen
-
Default Router List: enthält für jeden Netzwerkanschluss die erreichbaren Router. Die Einträge enthalten Verfallsvorgaben.
-
Prefix List: beinhaltet Präfixe, die im gleichen Netzwerk gültig sind, mit Verfallsvorgaben. Ausnahme: Angaben des eigenen Rechners (Link-local)
-
Neighbor Cache: Liste mit Netzwerkteilnehmern, mit denen innerhalb einer festgelegten Zeitspanne erfolgreich kommuniziert wurde. Es werden die Unicast-IP-Adresse, die MAC-Adresse, der Zustand, das »Alter« des Eintrags und der Netzwerkanschluss festgehalten.
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