ICMPv6 - Internet Control Message Protocol Version 6
Das Internet Control Message Protocol Version 6 (ICMPv6) ist Bestandteil des Internet Protocols Version 6 (IPv6). Es wird aber als eigenständiges Protokoll behandelt, das zur Übermittlung von Meldungen über IP dient. Hauptaufgabe von ICMP ist die Übertragung von Statusinformationen und Fehlermeldungen der Protokolle IP, TCP und UDP.
ICMPv6 wird verwendet, um NDP-Nachrichten, wie Router Discovery und Neighbor Discovery zu verschicken. NDP umfasst die Funktionen von ARP, RARP und IGMP als Teil von IPv4. Für IPv6 sind das in NDP Neighbor Discovery, Inverse Neighbor Discovery und Multicast Listener Discovery (MLD).
ICMPv6 spielt eine wichtige Rolle für die Funktionsweise von IPv6-Verbindungen. Im Vergleich zu IPv4 dürfen ICMPv6-Datenpakete nicht einfach so blockiert werden.
Aufbau des ICMPv6-Headers
Der ICMPv6-Header besteht aus mindestens drei Feldern:
- 8 Bit für den Typ der NDP-Nachricht
- 8 Bit für den Code der NDP-Nachricht
- 16 Bit für die Prüfsumme des ICMPv6-Datenpakets
Die Prüfsumme wird über die gesamte ICMPv6-Nachricht und einem Pseudoheader gebildet. Der Pseudoheader besteht aus Quell- und Zieladresse, sowie der Länge des ICMPv6-Datagramms und dem Next-Header-Eintrag.
ICMPv6-Nachrichten-Typen
- Router Advertisement (ICMPv6-Typ 134)
- Router Solicitation (ICMPv6-Typ 133)
- Neighbor Advertisement (ICMPv6-Typ 136)
- Neighbor Solicitation (ICMPv6-Typ 135)
- Redirect (ICMPv6-Typ 137)
RA - Router Advertisement
Router Advertisements (RA) sind ICMPv6-Nachrichten vom Typ 134, mit denen sich Router im Netz bekanntgeben, Routing-Informationen verbreiten und Informationen für die IP-Autokonfiguration (Stateless Address Autoconfiguration, SLAAC) verteilen.
Dazu sendet ein Router in regelmäßigen Abständen ein sogenanntes Router Advertisement an die Multicast-Adresse "ff02::1". Davon fühlen sich alle Hosts im Link-Local-Scope angesprochen, die gegebenenfalls ihre IPv6-Konfiguration aktualisieren. Auf diese Weise erfahren alle Hosts die Adresse des Default-Routers und die link-lokalen und globalen Präfixe.
Router Advertisements lassen sich auch per Router Solicitation durch einzelne Hosts erzwingen.
RS - Router Solicitation
Router Solicitations (SA) sind ICMPv6-Nachrichten vom Typ 135, mit denen ein Host um einen Router Advertisement bittet.
Zwar sendet der Router periodisch Router-Advertisement-Nachrichten. Doch muss ein Host nicht darauf warten, sondern kann ein Router Advertisement erzwingen in dem er ein Router Solicitation senden. Der Router kann darauf mit einer Multicast-Nachricht an alle oder mit einer Unicast-Nachricht an den anfragenden Host antworten.
Neighbor Advertisement und Neighbor Solicitation (Neighbor Discovery)
Neighbor Advertisements sind ICMPv6-Nachrichten vom Typ 136, bei denen es sich um Antworten auf Neighbor Solicitations handelt. Neighbor Solicitation sind ICMPv6-Nachrichten vom Typ 137, bei denen es sich um Nachrichten mit der Bitte um Antwort handelt. Neighbor Advertisement und Neighbor Solicitation werden im Rahmen der Duplicate Address Detection (DAD), Neighbor Unreachability Detection (NUD) und Adressauflösung ausgetauscht.
Neighbor-Cache
Im Rahmen der Neighbor Discovery mit Neighbor Solicitation und Neighbor Advertisement entsteht der Neighbor-Cache. Das ist eine Liste von Netzwerkbekanntschaften aller Netzwerkschnittstellen, die ein Betriebssystem anlegt. Hier sind alle Rechner verzeichnet zu denen in letzter Zeit eine Verbindung bestand.
Der Neighbor-Cache entspricht dem ARP-Cache unter IPv4.
Mit den folgenden Befehlen kann man sich den Neighbor-Cache des eigenen Rechners anschauen:
- Windows: netsh interface ipv6 show neighbors
- Linux: ip -6 neighbor show
Auf einem neu gestarteten Rechner ist diese Liste sehr kurz und enthält in der Regel nur die Adresse des nächsten IPv6-Routers im Link-Local-Scope.
Dank der Multicast-Adresse "ff02::1" kann man mit einem "ping" alle im Link-Local-Scope laufenden IPv6-Geräte herausfinden (Neighbor Solicitation).
- Windows: ping -6 ff02::1
- Linux: ping6 -c 5 ff02::1
Alle Systeme am Link-Local-Scope versenden dann Antwortpakete (Neighbor Advertisement), sofern die Geräte die Neighbor Solicitation erhalten haben. Dazu müssen sie mit dem LAN verbunden sein. Und eine Firewall oder eine andere Sicherheitsmaßnahme darf ICMPv6-Pakete nicht blockieren.
Anschließend finden sich alle Systeme, die geantwortet haben, im Neighbor Cache wieder. Diese Liste kann für weitere Untersuchungen im Link-Local-Scope nützlich sein.