IPv6/Neighbor Discovery Protocol

Aus Foxwiki

Neighbor Discovery Protocol (NDP) - Address Resolution mit IPv6

Beschreibung

Nachfolger des Address Resolution Protocol (ARP) bei IPv6

IPv6/Adressen in Link-Layer-Adressen auflösen
Verwendung

NDP wird von den am IPv6-Netzwerk beteiligten Knoten benutzt, um die Link-Layer-Adresse von anderen am selben Netzwerk hängenden Knoten ausfindig zu machen und zum Aktualisieren der gecachten Adressen

  • Für alle nicht am selben Netzwerk hängenden Knoten wird NDP benutzt, um einen/den Router zu finden, der die Pakete weiterleiten kann

Funktionsweise

NDP-Knoten verwalten für jedes Interface folgende Informationen
Information Beschreibung
Neighbor Cache Adressen, an die etwas gesendet wurde und die sich im selben Netzwerk befinden
  • Zu jedem Eintrag einer IPv6-Adresse steht ihre Link-Layer-Adresse
  • Auch weitere Informationen werden hier verwaltet, wie zum Beispiel Pointer auf Pakete, die auf die Adressauflösung warten, Informationen für die Erreichbarkeitsprüfung oder ob es ein Router ist
Destination Cache Adressen, an die etwas gesendet wurde
  • Für jeden Eintrag wird, per Link auf den Neighbor Cache, gespeichert, welches der nächste Hop ist, den ein Paket nehmen soll
Prefix List Präfixe, die auf demselben Netz gültig sind
  • Jeder Eintrag, außer der zur link-lokalen Adresse, hat ein Ablaufdatum
  • Somit bleiben nur Netze in der Liste, die von einem Router verkündet werden
Default Router List Router, die für das Interface bekannt sind
  • Einträge verweisen auf Einträge im Neighbor Cache
  • Zusätzlich haben sie ein Ablaufdatum, sodass alte Router verschwinden und nur die erhalten bleiben, die ihre Anwesenheit verkünden
Die Informationen zum Erstellen dieser Listen werden per ICMPv6 (Internet Control Message Protocol Version 6) ausgetauscht

NDP ICMPv6-Typen

Type Bezeichnung
133 Router Solicitation
134 Router Advertisement
135 Neighbor Solicitation
136 Neighbor Advertisement
137 Redirect

Router- und Präfix-Ermittlung

Router versenden in gewissen Zeitabständen Router-Advertisement-Nachrichten per Multicast
  • Die Informationen in diesen Nachrichten werden verwendet, um die Default Router List und die Prefix List zu erstellen
  • Nach Ablauf der angegebenen Lebenszeit werden die Einträge wieder aus den Listen gelöscht
  • Dadurch bleiben nur Router eingetragen, die aktiv sind und ihre Anwesenheit periodisch kundtun

Um nicht auf das nächste geplante Router Advertisement warten zu müssen, kann ein Knoten per Router-Solicitation-Nachricht an die Router-Multicast-Adresse ein Router Advertisement erzwingen

  • Dies ist besonders beim Aktivieren eines neuen Interfaces von Vorteil, um mit der Konfiguration nicht warten zu müssen

Parameterermittlung

Mit diesem Mechanismus ermitteln Knoten relevante Parameter für den Link (z. B. die für den Link verwendete MTU), an dem sie angeschlossen sind, oder Internet Parameter (wie zum Beispiel den Wert für den Hop Limit), die für ausgehende Pakete verwendet werden müssen

Adress-Autokonfiguration

Mit diesem Verfahren konfigurieren Netzknoten IPv6-Adressen für ihre Interfaces ohne einen DHCP-Dienst zu nutzen

Bestimmung des nächsten Hops

Wenn ein Paket versendet werden soll, wird im Destination Cache nachgeschaut, ob für dieses Ziel schon ein Eintrag vorhanden ist
  • Wenn kein Eintrag existiert, wird anhand der Prefix List und der Default Router List der nächste Hop für das Paket ermittelt
  • Diese Information wird dann im Destination Cache gespeichert, um dies nicht jedes Mal ermitteln zu müssen
Wenn der neue Eintrag auf einen nichtvorhandenen Eintrag im Neighbor Cache zeigt, wird dieser ebenfalls erzeugt, als unfertig markiert und die Adressauflösung (engl. Address resolution) angestoßen
  • Das Paket wird in die Queue gestellt und im Neighbor Cache ein Pointer darauf gesetzt

Adressauflösung

Um die Link-Layer-Adresse eines Knotens zu ermitteln, wird eine Neighbor-Solicitation-Nachricht per IPv6-Multicast an die sog. Solicited Nodes-Adresse des Ziels versendet
  • Anzumerken ist, dass auf Link-Layer-Ebene ebenfalls Multicast genutzt wird – jeder IPv6-Knoten muss also auf Link-Layer-Ebene nicht nur auf seine originäre feste MAC-Adresse (z. B. Ethernet) hören, sondern auch auf eine spezifische Multicast-Adresse, die auf seiner IPv6-Adresse beruht
  • Im Neighbor-Solicitation-Paket ist dann die vollständige gesuchte IPv6-Adresse in den Nutzdaten enthalten, und nur der Knoten mit der gleichen Adresse antwortet darauf
  • Er verschickt eine Neighbor-Advertisement-Nachricht
  • Die darin enthaltenen Informationen werden im Neighbor Cache gespeichert
  • Wenn ein Eintrag noch unfertig war, kann er nun als erreichbar markiert werden und die Pakete, auf die er verweist, können ausgelöst werden
Beispiel

Ein IPv6-Host in einem Ethernet-Netzwerk mit einer MAC-Adresse 00:1d:e0:2a:42:42 bekommt über EUI-64 eine link-lokale IPv6-Adresse fe80::021d:e0ff:fe2a:4242

  • Die zugehörige Solicitated Node Multicast Adresse, an welche Neighbor-Solicitation-Paket auf IPv6-Ebene versendet werden, lautet FF02::1:FF2a:4242
  • Der Host hört auf der Link-Layer-Ebene nicht nur auf seine MAC-Adresse 00:1d:e0:2a:42:42, sondern auch auf die (der Solicitated Node Multicast Adresse zugeordneten) Ethernet-Multicast-Adresse 33:33:ff:2a:42:42. 33:33 ist dabei der Teil, der ein IPv6 Multicast-Paket im Ethernet kennzeichnet, ff:2a:42:42 identifiziert die eigentliche Gruppe (Multicast)

Erkennung der Nichterreichbarkeit des Nachbarn

Um den Neighbor Cache aktuell zu halten, wird versucht herauszufinden, ob die Einträge darin noch aktuell sind
  • Es gibt dabei verschiedene Wege festzustellen, ob ein Knoten nicht aktiv ist
  • Solange man TCP-Daten oder TCP-Empfangsbestätigungen erhält, weiß man, dass der Knoten noch erreichbar ist
Wenn ein Eintrag seine Lebenszeit überschreitet, ohne durch Verkehr bestätigt zu werden, wird er als veraltet markiert
  • Sobald ein Paket versendet werden will, wird der Eintrag als verzögert markiert und für kurze Zeit versucht, ihn durch Verkehr zu bestätigen
  • Wenn dies nicht passiert, wird erneut eine Neighbor-Solicitation-Nachricht gesendet, um den Knoten aktiv zu testen
  • Wenn er nicht antwortet, wird er aus dem Neighbor Cache gelöscht

Erkennung doppelter Adressen

Mit diesem Verfahren ermitteln Netzknoten, ob die Adresse, die sie sich bei der Autokonfiguration gegeben haben, eindeutig ist

Umleitung

Redirect-Nachrichten werden vom Router verschickt, um andere Knoten über einen besseren ersten Hop für eine Zieladresse zu informieren
  • Beim Empfangen einer solchen Nachricht wird der Destination Cache aktualisiert
  • Wenn kein passender Eintrag im Destination Cache gefunden wird, wird ein neuer erstellt

Anwendungen

NDP/Anwendungen

Anhang

Siehe auch

Dokumentation

RFC
RFC Titel
4861 Neighbor Discovery for IP Version 6 (IPv6)
3122 Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification

Links

Projekt
Weblinks
  1. https://de.wikipedia.org/wiki/Neighbor_Discovery_Protocol