Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Neighbor Discovery Protocol

Das Neighbor Discovery Protocol (NDP) ist der Ersatz für das Address Resolution Protocol (ARP) des IPv4-Protokollstacks bei dessen Nachfolger IPv6.

Inhalt5 Abschnitte
  1. 1. Aufgabe und grundlegende Datenhaltung
  2. 2. Router, Präfixe und nächster Hop
  3. 3. Adressauflösung, Erreichbarkeit und Umleitung
  4. 4. Die fünf ICMPv6-Nachrichten
  5. 5. Anzeige in Betriebssystemen

Aufgabe und grundlegende Datenhaltung

Das Neighbor Discovery Protocol (NDP) ist im IPv6-Protokollstapel der Ersatz für ARP im IPv4-Protokollstapel. Es ordnet IPv6-Adressen Link-Layer-Adressen zu, etwa Ethernet-MAC-Adressen. Außerdem hilft es Knoten, Router zu finden, den nächsten Hop zu bestimmen, Nachbarn auf Erreichbarkeit zu prüfen, doppelte Adressen zu erkennen und bessere Wege mitzuteilen. NDP baut auf der Netzzugangsschicht auf und verwendet zum Informationsaustausch ICMPv6; es definiert dafür fünf Nachrichtentypen.

Jeder Knoten verwaltet für jedes Interface mehrere Datenstrukturen:

  • Der Neighbor Cache enthält IPv6-Adressen von Knoten im selben Netzwerk und die zugehörigen Link-Layer-Adressen. Er kann außerdem wartende Pakete, Informationen zur Erreichbarkeitsprüfung und die Angabe enthalten, ob der Knoten ein Router ist.
  • Der Destination Cache speichert für bereits verwendete Zieladressen den nächsten Hop. Dazu verweist jeder Eintrag auf einen Eintrag im Neighbor Cache.
  • Die Prefix List enthält die im selben Netz gültigen Präfixe. Mit Ausnahme des Eintrags zur link-lokalen Adresse haben die Einträge ein Ablaufdatum; dadurch bleiben nur von Routern verkündete Netze erhalten.
  • Die Default Router List enthält die für das Interface bekannten Router. Ihre Einträge verweisen auf den Neighbor Cache und laufen ab, wenn Router ihre Anwesenheit nicht weiter verkünden.

Für Ziele im selben Netzwerk ermittelt NDP deren Link-Layer-Adresse und aktualisiert zwischengespeicherte Adressen. Für Ziele außerhalb des eigenen Netzwerks findet es einen Router, der Pakete weiterleiten kann.

Router, Präfixe und nächster Hop

Router senden regelmäßig Router-Advertisement-Nachrichten als Multicast an FF02::2. Daraus erstellt ein Knoten die Default Router List und die Prefix List. Nach der angegebenen Lebenszeit werden die Einträge gelöscht, sodass nur aktive Router erhalten bleiben.

Ein Knoten kann per Router Solicitation an die Router-Multicast-Adresse ein Router Advertisement anfordern. Das vermeidet besonders beim Aktivieren eines neuen Interfaces die Wartezeit bis zur nächsten periodischen Router-Nachricht. NDP vermittelt dabei auch Link-Parameter wie die verwendete MTU sowie Internet-Parameter wie das Hop Limit für ausgehende Pakete. Die Adress-Autokonfiguration ermöglicht es Netzknoten, IPv6-Adressen für ihre Interfaces ohne DHCP-Dienst zu konfigurieren; hierzu wird auf SLAAC verwiesen.

Soll ein Paket versendet werden, wird zunächst der Destination Cache geprüft. Fehlt das Ziel dort, wird anhand von Prefix List und Default Router List der nächste Hop bestimmt und im Destination Cache gespeichert. Verweist der neue Eintrag noch auf keinen Neighbor-Cache-Eintrag, wird ein solcher als unfertig angelegt, die Adressauflösung gestartet und das Paket in eine Warteschlange gestellt.

Adressauflösung, Erreichbarkeit und Umleitung

Zur Adressauflösung sendet ein Knoten eine Neighbor Solicitation per IPv6-Multicast an die Solicited-Nodes-Adresse des Ziels. Auch auf der Link-Layer-Ebene wird Multicast verwendet: Ein IPv6-Knoten hört daher nicht nur auf seine feste MAC-Adresse, sondern auch auf eine aus seiner IPv6-Adresse abgeleitete Multicast-Adresse. Die vollständige gesuchte IPv6-Adresse steht in den Nutzdaten. Nur der Knoten mit dieser Adresse antwortet mit einem Neighbor Advertisement. Dessen Angaben werden im Neighbor Cache gespeichert; wartende Pakete können anschließend gesendet werden.

Beispiel: Ein IPv6-Host mit der MAC-Adresse 00:1d:e0:2a:42:42 erhält über EUI-64 die link-lokale IPv6-Adresse fe80::021d:e0ff:fe2a:4242. Seine Solicited Node Multicast Adresse ist ff02::1:ff2a:4242; die dazugehörige Ethernet-Multicast-Adresse ist 33:33:ff:2a:42:42. Dabei kennzeichnet 33:33 ein IPv6-Multicast-Paket im Ethernet, während ff:2a:42:42 die Gruppe identifiziert.

Zur Erkennung der Nichterreichbarkeit prüft NDP, ob Einträge im Neighbor Cache noch aktuell sind. Empfangene TCP-Daten oder TCP-Empfangsbestätigungen zeigen Erreichbarkeit an. Wird ein Eintrag ohne solche Bestätigung veraltet, wird er als veraltet und beim nächsten Senden zunächst als verzögert markiert. Bleibt eine Bestätigung durch Verkehr aus, testet eine Neighbor Solicitation den Knoten aktiv; ohne Antwort wird der Eintrag gelöscht. Duplicate Address Detection (DAD) prüft, ob eine bei der Autokonfiguration gewählte Adresse eindeutig ist.

Mit Redirect-Nachrichten informiert ein Router über einen besseren ersten Hop für ein Ziel. Der empfangende Knoten aktualisiert dafür seinen Destination Cache oder legt einen passenden Eintrag neu an.

Die fünf ICMPv6-Nachrichten

Router Solicitation hat Type 133 und stets Code 0. Sie fordert alle Router im selben Netz über die Router-Multicast-Adresse auf, sich zu melden. Das reservierte Feld wird vom Sender mit Nullen belegt und vom Empfänger ignoriert. Als einzige mögliche Option ist die Link-Layer-Adresse des Senders vorgesehen; unbekannte Optionen müssen ignoriert werden.

Router Advertisement hat Type 134 und verkündet die Anwesenheit eines Routers, entweder auf eine Router Solicitation hin oder periodisch. Das Hop-Limit ist ein 8-Bit-Wert für das vorgeschlagene Standard-Hop-Limit. M signalisiert zusätzlich zur IP-Adress-Autokonfiguration Stateful-Autokonfiguration; O signalisiert Stateful-Autokonfiguration für Nicht-IP-Adress-Informationen. HA zeigt einen aktiven Home Agent an, Pref setzt Präferenzen zwischen mehreren Routern und Proxy signalisiert einen Proxy. Die Router-Lifetime ist ein 16-Bit-Integer in Sekunden. Theoretisch sind 18,2 Stunden (= 65.536 Sekunden = 2^16 Sekunden) möglich, RFC 4861 begrenzt den Wert jedoch auf 9000 Sekunden, also 2,5 Stunden. Der Wert 0 bedeutet, dass der Router nicht als Default Router eingetragen wird. Erreichbarkeits-Timeout und Auflösungs-Timeout sind 32-Bit-Integer in Millisekunden. Mögliche Optionen sind Sender-Link-Layer-Adresse, MTU und gültige Präfixe.

Neighbor Solicitation hat Type 135 und Code 0. Sie löst eine IPv6-Zieladresse in eine Link-Layer-Adresse auf und prüft auch die Erreichbarkeit. Die Zieladresse darf keine Multicast-Adresse sein. Neighbor Advertisement hat Type 136 und Code 0 und antwortet darauf. R bedeutet, dass der Knoten Router ist; S wird bei einer Unicast-Neighbor-Solicitation gesetzt; O verlangt die Aktualisierung des Neighbor-Cache-Eintrags. Beide Nachrichten haben ein reserviertes, mit Nullen zu initialisierendes Feld und als einzige mögliche Option die Sender-Link-Layer-Adresse.

Redirect hat Type 137 und Code 0. Er enthält die bevorzugte Hop-Adresse sowie die Zieladresse, für die es einen besseren First-Hop gibt. Möglich sind als Optionen die Link-Layer-Adresse des Senders und der Header des auslösenden Pakets. Bei allen fünf Typen müssen unbekannte Optionen ignoriert werden.

Anzeige in Betriebssystemen

Alle IPv6-fähigen Betriebssysteme in Ethernet-basierten Netzwerken können NDP zur Adressauflösung verwenden. Unter den meisten Linux-Distributionen zeigt „ip -6 neigh“ den Neighbor Cache. Auf BSD-basierten Systemen wie FreeBSD und OpenBSD dient „ndp -an“ dazu, alle Hosts numerisch anzuzeigen. Unter Windows lautet der Befehl „netsh interface ipv6 show neighbors level=verbose“.

Bei der BSD-Ausgabe ist insbesondere die Spalte Expire wichtig: Sie gibt an, wann ein Eintrag als veraltet gilt. Eigene Adressen sind permanent; in dem gezeigten Beispiel hat der Router eine Restzeit von fast 24 Stunden, während Nachbargeräte meist weniger als eine Minute gespeichert bleiben, bevor ihr Eintrag aufgefrischt wird.

Weiterlesen

Internetprotokollfamilie RIP (Routing Information Protocol) – Informationsaustausch zwischen Routern (Distanzvektor) via UDP · IGMP (Internet Group Management) – Organisation von … Address Resolution Protocol Das Address Resolution Protocol (ARP) ist ein Netzwerkprotokoll, das zu einer Netzwerkadresse der Internetschicht die physische Adresse (Hardware-Adresse) … MAC-Adresse Die MAC-Adresse (Media-Access-Control-Adresse, auch Media-Access-Code-Adresse) ist die Nummer eines Gerätes auf einer Datenverbindung. Router Router (['ruːtə(r)] oder ['raʊ̯tər]) oder Netzwerkrouter sind Netzwerkgeräte, die Netzwerkpakete zwischen mehreren Rechnernetzen weiterleiten können. Cache Cache ([kæʃ], auch [ kaʃ]) bezeichnet in der Informationstechnik einen schnellen Pufferspeicher, der (wiederholte) Zugriffe auf vergleichsweise langsame … Time to Live Die Time to live (TTL, deutsch „Lebenszeit“) ist die Gültigkeitsdauer, die Daten in Rechnernetzen mitgegeben wird. Inhaltsverzeichnis. Dynamic Host Configuration Protocol Das Dynamic Host Configuration Protocol (DHCP) ist ein Kommunikationsprotokoll in der Computertechnik. Es ermöglicht die Zuweisung der Netzwerkkonfiguration … Ethernet Derzeit sind Übertragungsraten von 1, 10, 100 Megabit/s (Fast-Ethernet), 1000 Megabit/s (Gigabit-Ethernet), 2,5, 5, 10, 25, 40, 50, 100, 200 und 400 Gigabit/s … Transmission Control Protocol Das Transmission Control Protocol (TCP, englisch für „Übertragungssteuerungsprotokoll“) ist ein Netzwerkprotokoll, das definiert, auf welche Art und Weise … IP-Adresse Im Falle von Ethernet-Netzen dient das ARP (Address Resolution Protocol) zum Auffinden der Hardwareadresse. ARP arbeitet auf der zweiten Schicht des OSI …