IPv6/ICMP: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''ICMPv6''' - [[Internet Control Message Protocol]] für [[IPv6]]
'''ICMPv6''' - [[Internet Control Message Protocol]] für [[IPv6]]


== Beschreibung ==
=== Beschreibung ===
Das '''Internet Control Message Protocol for the Internet Protocol Version 6''' ('''ICMPv6''') ist die mit [[IPv6]] zusammen verwendete Version des [[Internet Control Message Protocol]].
Das '''Internet Control Message Protocol for the Internet Protocol Version 6''' ('''ICMPv6''') ist die mit [[IPv6]] zusammen verwendete Version des [[Internet Control Message Protocol]].
* Es dient, wie schon bei [[IPv4]], in [[Rechnernetz|Netzwerken]] zum Austausch von Fehler- und Informationsmeldungen.
* Es dient, wie schon bei [[IPv4]], in [[Rechnernetz|Netzwerken]] zum Austausch von Fehler- und Informationsmeldungen.
Zeile 46: Zeile 46:
|}
|}


== Header ==
=== Header ===
; Das Feld ''Type'' gibt die Klasse der ICMP-Nachricht an, welche mit dem Feld ''Code'' genauer spezifiziert werden kann.
; Das Feld ''Type'' gibt die Klasse der ICMP-Nachricht an, welche mit dem Feld ''Code'' genauer spezifiziert werden kann.
* Die Prüfsumme wird zur Verifizierung der Gültigkeit des ICMPv6-Pakets benutzt.
* Die Prüfsumme wird zur Verifizierung der Gültigkeit des ICMPv6-Pakets benutzt.
Zeile 65: Zeile 65:
|}
|}


=== Prüfsumme ===
==== Prüfsumme ====
{| class="wikitable float-right" style="font-size:smaller;text-align:center;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;text-align:center;" cellpadding="2"
|+ Prüfsummen-Schema
|+ Prüfsummen-Schema
Zeile 103: Zeile 103:
Dies ist eine der Neuerungen von ICMPv6 gegenüber [[Internet Control Message Protocol|ICMP]], wo die Prüfsumme nur über den ICMP-Header berechnet wurde.
Dies ist eine der Neuerungen von ICMPv6 gegenüber [[Internet Control Message Protocol|ICMP]], wo die Prüfsumme nur über den ICMP-Header berechnet wurde.


== Verarbeitung ==
=== Verarbeitung ===
; Regeln für die Verarbeitung von ICMPv6-Nachrichten
; Regeln für die Verarbeitung von ICMPv6-Nachrichten
* Unbekannte ICMPv6-Fehlernachrichten müssen an die darüberliegende Netzwerkschicht weitergereicht werden
* Unbekannte ICMPv6-Fehlernachrichten müssen an die darüberliegende Netzwerkschicht weitergereicht werden
Zeile 117: Zeile 117:
* Das Netz darf nicht mit ICMPv6-Fehlernachrichten geflutet werden.
* Das Netz darf nicht mit ICMPv6-Fehlernachrichten geflutet werden.


== Nachrichten-Typen ==
=== Nachrichten-Typen ===
; Die Nachrichten-Typen werden in zwei Gruppen unterteilt
; Die Nachrichten-Typen werden in zwei Gruppen unterteilt
* Die ersten 128 Typen (0–127) mit dem [[Bitwertigkeit|höchstwertigen Bit]] (engl. ''most significant bit'') auf 0, sind Fehlernachrichten.
* Die ersten 128 Typen (0–127) mit dem [[Bitwertigkeit|höchstwertigen Bit]] (engl. ''most significant bit'') auf 0, sind Fehlernachrichten.
Zeile 283: Zeile 283:
|}
|}


=== Destination Unreachable – Type 1 ===
==== Destination Unreachable – Type 1 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 311: Zeile 311:
Wenn ein ''Destination Unreachable'' empfangen wird, muss es der darüberliegenden Schicht weitergereicht werden.
Wenn ein ''Destination Unreachable'' empfangen wird, muss es der darüberliegenden Schicht weitergereicht werden.


=== Packet Too Big – Type 2 ===
==== Packet Too Big – Type 2 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 335: Zeile 335:
Wenn ein ''Packet Too Big'' empfangen wird, muss es dem darüberliegenden Layer weitergereicht werden.
Wenn ein ''Packet Too Big'' empfangen wird, muss es dem darüberliegenden Layer weitergereicht werden.


=== Time Exceeded – Type 3 ===
==== Time Exceeded – Type 3 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 358: Zeile 358:
Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit ankommen, wird das Paket verworfen und es muss ein ''Time Exceeded'' mit Code 1 versendet werden.
Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit ankommen, wird das Paket verworfen und es muss ein ''Time Exceeded'' mit Code 1 versendet werden.


=== Parameter Problem – Type 4 ===
==== Parameter Problem – Type 4 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 396: Zeile 396:
Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.
Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.


=== Echo Request – Type 128 ===
==== Echo Request – Type 128 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 426: Zeile 426:
Empfangene ''Echo Request'' können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen.
Empfangene ''Echo Request'' können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen.


=== Echo Reply – Type 129 ===
==== Echo Reply – Type 129 ====


{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
{| class="wikitable float-right" style="font-size:smaller;" cellpadding="2"
Zeile 453: Zeile 453:
* An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden.
* An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden.


=== Multicast Listener Discovery – Type 130 ===
==== Multicast Listener Discovery – Type 130 ====
[[MLD]] ist die Implementation von [[Internet Group Management Protocol|IGMP]] (IPv4) in IPv6.
[[MLD]] ist die Implementation von [[Internet Group Management Protocol|IGMP]] (IPv4) in IPv6.
* Es wird also genutzt, um [[Multicast]]-Abonnements zu verwalten.
* Es wird also genutzt, um [[Multicast]]-Abonnements zu verwalten.
Zeile 461: Zeile 461:
<noinclude>
<noinclude>


== Anhang ==
=== Anhang ===
=== Siehe auch ===
==== Siehe auch ====
{{Special:PrefixIndex/IPv6}}
{{Special:PrefixIndex/IPv6}}
==== Dokumentation ====
===== Dokumentation =====
===== RFC =====
====== RFC ======
# [https://www.rfc-editor.org/rfc/rfc4861.html RFC 4861] – "Neighbor Discovery for IP Version 6 (IPv6)"
# [https://www.rfc-editor.org/rfc/rfc4861.html RFC 4861] – "Neighbor Discovery for IP Version 6 (IPv6)"
# [https://www.rfc-editor.org/rfc/rfc4443.html RFC 4443] – "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)" Specification
# [https://www.rfc-editor.org/rfc/rfc4443.html RFC 4443] – "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)" Specification
Zeile 475: Zeile 475:
# https://tools.ietf.org/html/rfc4604
# https://tools.ietf.org/html/rfc4604


==== Links ====
===== Links =====
===== Projekt =====
====== Projekt ======
===== Weblinks =====
====== Weblinks ======
# https://de.wikipedia.org/wiki/ICMPv6
# https://de.wikipedia.org/wiki/ICMPv6
# https://lwn.net/Articles/29489/
# https://lwn.net/Articles/29489/


=== TMP ===
==== TMP ====
IPv6
IPv6
ICMPv6
ICMPv6
ICMPv6 - Bedeutung
ICMPv6 - Bedeutung


    Internet Control Message Protocol for the Internet Protocol Version 6 (ICMPv6)
Internet Control Message Protocol for the Internet Protocol Version 6 (ICMPv6)
            ist die mit IPv6 zusammen verwendete Version des Internet Control Message Protocol
● ist die mit IPv6 zusammen verwendete Version des Internet Control Message Protocol


    Meldungen
Meldungen
            Es dient, wie ICMPv4 bei IPv4, in Netzwerken zum Austausch von Fehler- und
● Es dient, wie ICMPv4 bei IPv4, in Netzwerken zum Austausch von Fehler- und
                Informationsmeldungen
Informationsmeldungen


    NDP
NDP
            Zusätzlich findet es im Neighbor Discovery Protocol, dem Ersatz des Address Resolution Protocol,
● Zusätzlich findet es im Neighbor Discovery Protocol, dem Ersatz des Address Resolution Protocol,
                Verwendung.
Verwendung.


    Bedeutung
Bedeutung
            Im Gegensatz zum ICMP bei IPv4 ist ICMPv6 zwingend für den Betrieb von IPv6 nötig
● Im Gegensatz zum ICMP bei IPv4 ist ICMPv6 zwingend für den Betrieb von IPv6 nötig
            Ein generelles Blockieren von ICMPv6 auf der Firewall führt dazu, dass IPv6 nicht funktioniert
● Ein generelles Blockieren von ICMPv6 auf der Firewall führt dazu, dass IPv6 nicht funktioniert
                (vgl. RFC 4890)
(vgl. RFC 4890)


    Transport
Transport
            ICMPv6-Nachrichten werden vor dem Versenden in IPv6-Pakete eingepackt und so verschickt.
● ICMPv6-Nachrichten werden vor dem Versenden in IPv6-Pakete eingepackt und so verschickt.
                  Auch wenn ICMPv6 auf derselben Netzwerkschicht ist wie IPv6
– Auch wenn ICMPv6 auf derselben Netzwerkschicht ist wie IPv6


    Protokoll-Nummer
Protokoll-Nummer
            Als Protokoll-Nummer wird 58 ins Next-Header-Feld des IPv6-Headers eingefügt
● Als Protokoll-Nummer wird 58 ins Next-Header-Feld des IPv6-Headers eingefügt


IPv6 - ICMPv6                                                         Dirk Wagner Berlin                         2
IPv6 - ICMPv6 Dirk Wagner Berlin 2
ICMPv6 im Protokollstapel
ICMPv6 im Protokollstapel


Zeile 515: Zeile 515:




IPv6 - ICMPv6               Dirk Wagner Berlin   3
IPv6 - ICMPv6 Dirk Wagner Berlin 3
Erweiterte ICMP-Funktionalität
Erweiterte ICMP-Funktionalität


    Unverzichtbar
Unverzichtbar
              ICMPv6 (Protokolltyp 58) stellt für das Funktionieren von IPv6 unverzichtbare Funktionen zur
● ICMPv6 (Protokolltyp 58) stellt für das Funktionieren von IPv6 unverzichtbare Funktionen zur
                Verfügung.
Verfügung.


    Firewalls
Firewalls
              Das Verbieten aller ICMPv6-Pakete in einem IPv6-Netzwerk durch Filter ist daher im Normalfall
● Das Verbieten aller ICMPv6-Pakete in einem IPv6-Netzwerk durch Filter ist daher im Normalfall
                nicht durchführbar.
nicht durchführbar.


    ARP und NDP
ARP und NDP
              Insbesondere wird das Address Resolution Protocol (ARP) durch das Neighbor Discovery
● Insbesondere wird das Address Resolution Protocol (ARP) durch das Neighbor Discovery
                Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
              NDP macht hierbei intensiv Gebrauch von Link-Local-Unicast-Adressen und Multicast
● NDP macht hierbei intensiv Gebrauch von Link-Local-Unicast-Adressen und Multicast
              das von jedem Host beherrscht werden muss
● das von jedem Host beherrscht werden muss


    Default-Routen
Default-Routen
              Im Rahmen des NDP werden auch die automatische Adressvergabe und die automatische
● Im Rahmen des NDP werden auch die automatische Adressvergabe und die automatische
                Zuordnung einer oder mehrerer Default-Routen über ICMPv6 abgewickelt, so stellt es die
Zuordnung einer oder mehrerer Default-Routen über ICMPv6 abgewickelt, so stellt es die
                meisten Funktionen zur IPv6-Autokonfiguration zur Verfügung
meisten Funktionen zur IPv6-Autokonfiguration zur Verfügung
              NDP kann auf die Möglichkeit weiterer Konfiguration durch DHCPv6 verweisen, welches UDP-
● NDP kann auf die Möglichkeit weiterer Konfiguration durch DHCPv6 verweisen, welches UDP-
                Pakete benutzt.
Pakete benutzt.






IPv6 - ICMPv6                                                   Dirk Wagner Berlin                             4
IPv6 - ICMPv6 Dirk Wagner Berlin 4
Erweiterte ICMP-Funktionalität
Erweiterte ICMP-Funktionalität


    Fragmentierung
Fragmentierung
              Fragmentierung überlanger IPv6-Pakete erfolgt nicht durch die Router
● Fragmentierung überlanger IPv6-Pakete erfolgt nicht durch die Router
                  Anders als bei IPv4
– Anders als bei IPv4
              Absender werden mit Hilfe von ICMPv6-Nachrichten aufgefordert, kleinere Pakete zu schicken
● Absender werden mit Hilfe von ICMPv6-Nachrichten aufgefordert, kleinere Pakete zu schicken
                  unter Zuhilfenahme des Fragment Extension Headers
– unter Zuhilfenahme des Fragment Extension Headers


    Path MTU Discovery
Path MTU Discovery
              Ein IPv6-Host, bzw. eine Anwendung sollte vor dem Versenden einer großen Anzahl von IPv6-
● Ein IPv6-Host, bzw. eine Anwendung sollte vor dem Versenden einer großen Anzahl von IPv6-
                Paketen eine Path MTU Discovery gemäß RFC 1981 durchführen
Paketen eine Path MTU Discovery gemäß RFC 1981 durchführen
                  um Pakete mit maximal möglicher Größe verschicken zu können
– um Pakete mit maximal möglicher Größe verschicken zu können








IPv6 - ICMPv6                                                     Dirk Wagner Berlin                       5
IPv6 - ICMPv6 Dirk Wagner Berlin 5
ICMPv6-Header
ICMPv6-Header


    Type
Type
              Das Feld Type gibt die Klasse der ICMP-Nachricht an
● Das Feld Type gibt die Klasse der ICMP-Nachricht an


    Code
Code
              welche mit dem Feld Code genauer spezifiziert werden kann.
● welche mit dem Feld Code genauer spezifiziert werden kann.


    Prüfsumme
Prüfsumme
              Die Prüfsumme wird zum Prüfen der Gültigkeit des ICMPv6-Pakets benutzt.
● Die Prüfsumme wird zum Prüfen der Gültigkeit des ICMPv6-Pakets benutzt.


    Inhalt
Inhalt
              Der restliche Inhalt der ICMP-Nachricht wird durch den jeweiligen Typ bestimmt
● Der restliche Inhalt der ICMP-Nachricht wird durch den jeweiligen Typ bestimmt
              Bei Fehlernachrichten wird nach den möglichen zusätzlichen Feldern immer noch so viel wie
● Bei Fehlernachrichten wird nach den möglichen zusätzlichen Feldern immer noch so viel wie
                möglich vom fehlerverursachenden Paket angehängt.
möglich vom fehlerverursachenden Paket angehängt.








IPv6 - ICMPv6                                                 Dirk Wagner Berlin                           6
IPv6 - ICMPv6 Dirk Wagner Berlin 6
ICMPv6-Typen
ICMPv6-Typen


Nachrichten-Typen werden in zwei Gruppen unterteilt
Nachrichten-Typen werden in zwei Gruppen unterteilt
    Fehlernachrichten
Fehlernachrichten
              Die ersten 128 Typen (0–127) mit dem höchstwertigen Bit (engl. most significant bit) auf 0
● Die ersten 128 Typen (0–127) mit dem höchstwertigen Bit (engl. most significant bit) auf 0


    Informationsnachrichten
Informationsnachrichten
              Die zweiten 128 Typen (128–255), mit dem höchstwertigem Bit auf 1
● Die zweiten 128 Typen (128–255), mit dem höchstwertigem Bit auf 1








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                           7
IPv6 - ICMPv6 Dirk Wagner Berlin 7
Fehlernachrichten
Fehlernachrichten


  Type           Beschreibung                                   RFC
  Type Beschreibung RFC
  1             Destination Unreachable                       RFC 4443
  1 Destination Unreachable RFC 4443
  2             Packet Too Big                                 RFC 4443
  2 Packet Too Big RFC 4443
  3             Time Exceeded                                 RFC 4443
  3 Time Exceeded RFC 4443
  4             Parameter Problem                             RFC 4443
  4 Parameter Problem RFC 4443
  100           Private experimentation
  100 Private experimentation
  101           Private experimentation
  101 Private experimentation








IPv6 - ICMPv6                             Dirk Wagner Berlin             8
IPv6 - ICMPv6 Dirk Wagner Berlin 8
Informationsnachrichten
Informationsnachrichten


  Type           Beschreibung                                                   RFC
  Type Beschreibung RFC
  128           Echo Request                                                   RFC 4443
  128 Echo Request RFC 4443
  129           Echo Reply                                                     RFC 4443
  129 Echo Reply RFC 4443
  130           Multicast Listener Query                                       RFC 2710 und RFC 3810
  130 Multicast Listener Query RFC 2710 und RFC 3810
  131           Version 1 Multicast Listener Report                           RFC 2710
  131 Version 1 Multicast Listener Report RFC 2710
  132           Multicast Listener Done                                       RFC 2710
  132 Multicast Listener Done RFC 2710
  133           Router Solicitation                                           RFC 4861
  133 Router Solicitation RFC 4861
  134           Router Advertisement                                           RFC 4861
  134 Router Advertisement RFC 4861
  135           Neighbor Solicitation                                         RFC 4861
  135 Neighbor Solicitation RFC 4861
  136           Neighbor Advertisement                                         RFC 4861
  136 Neighbor Advertisement RFC 4861
  137           Redirect                                                       RFC 4861
  137 Redirect RFC 4861
  138           Router Renumbering
  138 Router Renumbering
  139           ICMP Node Information Query                                   RFC 4620
  139 ICMP Node Information Query RFC 4620
  140           ICMP Node Information Response                                 RFC 4620
  140 ICMP Node Information Response RFC 4620
  141           Inverse Neighbor Discovery Solicitation Message               RFC 3122
  141 Inverse Neighbor Discovery Solicitation Message RFC 3122
  142           Inverse Neighbor Discovery Advertisement Message               RFC 3122
  142 Inverse Neighbor Discovery Advertisement Message RFC 3122
  143           Version 2 Multicast Listener Report                           RFC 3810
  143 Version 2 Multicast Listener Report RFC 3810






IPv6 - ICMPv6                                             Dirk Wagner Berlin                           9
IPv6 - ICMPv6 Dirk Wagner Berlin 9
Informationsnachrichten
Informationsnachrichten


  Type           Beschreibung                                                       RFC
  Type Beschreibung RFC
  144           Home Agent Address Discovery Request Message                       RFC 3775
  144 Home Agent Address Discovery Request Message RFC 3775
  145           Home Agent Address Discovery Reply Message                         RFC 3775
  145 Home Agent Address Discovery Reply Message RFC 3775
  146           Mobile Prefix Solicitation                                         RFC 3775
  146 Mobile Prefix Solicitation RFC 3775
  147           Mobile Prefix Advertisement                                         RFC 3775
  147 Mobile Prefix Advertisement RFC 3775
  148           Certification Path Solicitation Message                             RFC 3971
  148 Certification Path Solicitation Message RFC 3971
  149           Certification Path Advertisement Message                           RFC 3971
  149 Certification Path Advertisement Message RFC 3971
  150           ICMP messages utilized by experimental mobility protocols such as   RFC 4065
  150 ICMP messages utilized by experimental mobility protocols such as RFC 4065
                Seamoby
Seamoby
  151           Multicast Router Advertisement                                     RFC 4286
  151 Multicast Router Advertisement RFC 4286
  152           Multicast Router Solicitation                                       RFC 4286
  152 Multicast Router Solicitation RFC 4286
  153           Multicast Router Termination                                       RFC 4286
  153 Multicast Router Termination RFC 4286
  200           Private experimentation
  200 Private experimentation
  201           Private experimentation
  201 Private experimentation
  255           Reserved for expansion of ICMPv6 informational messages
  255 Reserved for expansion of ICMPv6 informational messages








IPv6 - ICMPv6                                             Dirk Wagner Berlin                 10
IPv6 - ICMPv6 Dirk Wagner Berlin 10
Prüfsumme
Prüfsumme


    Die Prüfsumme (engl. checksum) eines ICMPv6-Pakets
Die Prüfsumme (engl. checksum) eines ICMPv6-Pakets
              ist ein 16-Bit-Einerkomplement der Summe des Einerkomplements der gesamten ICMPv6-
● ist ein 16-Bit-Einerkomplement der Summe des Einerkomplements der gesamten ICMPv6-
                Nachricht.
Nachricht.
                  'Einerkomplement' ist eine arithmetische Operation, bei der alle Bit invertiert werden (arithmetische Nicht-
– 'Einerkomplement' ist eine arithmetische Operation, bei der alle Bit invertiert werden (arithmetische Nicht-
                    Verknüpfung)
Verknüpfung)
                  Aus 0 wird 1 und umgekehrt
– Aus 0 wird 1 und umgekehrt
                  Siehe: https://de.wikipedia.org/wiki/Einerkomplement
– Siehe: https://de.wikipedia.org/wiki/Einerkomplement


    Pseudoheader
Pseudoheader
              Zusätzlich zur Nachricht wird noch ein IPv6-Pseudoheader angehängt
● Zusätzlich zur Nachricht wird noch ein IPv6-Pseudoheader angehängt
                  Neuerungen gegenüber ICMP, wo die Prüfsumme nur über den ICMP-Header berechnet wurde
– Neuerungen gegenüber ICMP, wo die Prüfsumme nur über den ICMP-Header berechnet wurde
              Zur Berechnung der Prüfsumme wird das Prüfsummenfeld auf 0 gesetzt.
● Zur Berechnung der Prüfsumme wird das Prüfsummenfeld auf 0 gesetzt.
              Pseudoheader zur Berechnung der Prüfsumme:
● Pseudoheader zur Berechnung der Prüfsumme:








IPv6 - ICMPv6                                                           Dirk Wagner Berlin                                       11
IPv6 - ICMPv6 Dirk Wagner Berlin 11
ICMPv6 - Verarbeitung
ICMPv6 - Verarbeitung


Regeln für die Verarbeitung von ICMPv6-Nachrichten
Regeln für die Verarbeitung von ICMPv6-Nachrichten
    Unbekannte ICMPv6 - Fehlernachrichten
Unbekannte ICMPv6 - Fehlernachrichten
              müssen an die darüber liegende Netzwerkschicht weitergereicht werden
● müssen an die darüber liegende Netzwerkschicht weitergereicht werden


    Unbekannte ICMPv6 - Informationsnachrichten
Unbekannte ICMPv6 - Informationsnachrichten
              müssen kommentarlos verworfen werden
● müssen kommentarlos verworfen werden


    Jeder Fehlernachricht
Jeder Fehlernachricht
              wird am Ende so viel wie möglich des fehlerverursachenden Pakets angehängt
● wird am Ende so viel wie möglich des fehlerverursachenden Pakets angehängt


    Protokollnummer zum Weiterreichen
Protokollnummer zum Weiterreichen
              von unbekannten Fehlernachrichten wird aus dem angehängten Originalpaket entnommen
● von unbekannten Fehlernachrichten wird aus dem angehängten Originalpaket entnommen


    Pakete auf die keine Fehlernachrichten versandt werden
Pakete auf die keine Fehlernachrichten versandt werden
              Fehlernachrichten
● Fehlernachrichten
              Pakete an Multicast-, Link-Level-Multicast- oder Link-Level-Broadcast-Adressen mit folgenden
● Pakete an Multicast-, Link-Level-Multicast- oder Link-Level-Broadcast-Adressen mit folgenden
                Ausnahmen:
Ausnahmen:
                  Packet-Too-Big-Nachrichten
– Packet-Too-Big-Nachrichten
                  Parameter-Problem-Nachrichten mit Code 2 – unbekannte IPv6-Option
– Parameter-Problem-Nachrichten mit Code 2 – unbekannte IPv6-Option
              Das Netz darf nicht mit ICMPv6 - Fehlernachrichten geflutet werden
● Das Netz darf nicht mit ICMPv6 - Fehlernachrichten geflutet werden
IPv6 - ICMPv6                                                     Dirk Wagner Berlin                         12
IPv6 - ICMPv6 Dirk Wagner Berlin 12
ICMP-Standard-Typen
ICMP-Standard-Typen


Destination Unreachable – Type 1
Destination Unreachable – Type 1
    Destination – Unreachable - Nachrichten sollten vom Router erzeugt werden, wenn ein
Destination – Unreachable - Nachrichten sollten vom Router erzeugt werden, wenn ein
    Paket nicht ausgeliefert werden konnte.
Paket nicht ausgeliefert werden konnte.
            Wenn das Paket wegen Überlastung fallen gelassen wurde, muss keine Destination Unreachable
● Wenn das Paket wegen Überlastung fallen gelassen wurde, muss keine Destination Unreachable
                versandt werden.
versandt werden.


    Code 0
Code 0
            fehlende Route
● fehlende Route


    Code 1
Code 1
            administrativ verboten (Firewall)
● administrativ verboten (Firewall)


    Code 3
Code 3
            Router kann IPv6-Adresse nicht auflösen, oder Problem mit dem Link
● Router kann IPv6-Adresse nicht auflösen, oder Problem mit dem Link


    Code 4
Code 4
            Zielhost hat für ein UDP-Paket keinen Listener
● Zielhost hat für ein UDP-Paket keinen Listener


    Wenn ein Destination Unreachable empfangen wird, muss es der darüberliegenden
Wenn ein Destination Unreachable empfangen wird, muss es der darüberliegenden
    Schicht weitergereicht werden.
Schicht weitergereicht werden.
IPv6 - ICMPv6                                                   Dirk Wagner Berlin                     13
IPv6 - ICMPv6 Dirk Wagner Berlin 13
ICMP-Standard-Typen
ICMP-Standard-Typen


Packet Too Big – Type 2
Packet Too Big – Type 2
              muss vom Router erzeugt werden, wenn ein Paket nicht weitergeleitet werden kann, weil es
● muss vom Router erzeugt werden, wenn ein Paket nicht weitergeleitet werden kann, weil es
                größer ist als die maximale MTU des Links, über den es versendet werden soll.
größer ist als die maximale MTU des Links, über den es versendet werden soll.
              Packet-Too-Big-Nachrichten werden vom Path MTU Discovery dazu gebraucht, um die
● Packet-Too-Big-Nachrichten werden vom Path MTU Discovery dazu gebraucht, um die
                pfadabhängige MTU zu ermitteln.
pfadabhängige MTU zu ermitteln.


    Code
Code
              sollte vom Sender auf 0 gesetzt und vom Empfänger ignoriert werden
● sollte vom Sender auf 0 gesetzt und vom Empfänger ignoriert werden


    Wenn ein Packet Too Big empfangen wird, muss es dem darüber liegenden Layer
Wenn ein Packet Too Big empfangen wird, muss es dem darüber liegenden Layer
    weitergereicht werden.
weitergereicht werden.








IPv6 - ICMPv6                                                 Dirk Wagner Berlin                           14
IPv6 - ICMPv6 Dirk Wagner Berlin 14
ICMP-Standard-Typen
ICMP-Standard-Typen


Time Exceeded – Type 3
Time Exceeded – Type 3
    Code 0
Code 0
              Wenn ein Router ein Paket mit einem Hop-Limit von 0 erhält, oder sie auf 0 verkleinert, muss er
● Wenn ein Router ein Paket mit einem Hop-Limit von 0 erhält, oder sie auf 0 verkleinert, muss er
                das Paket verwerfen und ein Time Exceeded mit Code 0 versenden.
das Paket verwerfen und ein Time Exceeded mit Code 0 versenden.
              Das zeigt entweder eine Endlosschleife im Routing an oder ein zu kleines anfängliches Hop-
● Das zeigt entweder eine Endlosschleife im Routing an oder ein zu kleines anfängliches Hop-
                Limit.
Limit.


    Code 1
Code 1
              Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit
● Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit
                ankommen, wird das Paket verworfen und es muss ein Time Exceeded mit Code 1 versendet
ankommen, wird das Paket verworfen und es muss ein Time Exceeded mit Code 1 versendet
                werden.
werden.








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                           15
IPv6 - ICMPv6 Dirk Wagner Berlin 15
ICMP-Standard-Typen
ICMP-Standard-Typen


Parameter Problem – Type 4
Parameter Problem – Type 4
              Wenn ein Host beim Verarbeiten eines IPv6-Pakets ein Problem in einem Feld feststellt und
● Wenn ein Host beim Verarbeiten eines IPv6-Pakets ein Problem in einem Feld feststellt und
                nicht mit der Verarbeitung weiterfahren kann, muss er das Paket verwerfen und eine Parameter-
nicht mit der Verarbeitung weiterfahren kann, muss er das Paket verwerfen und eine Parameter-
                Problem-Nachricht verschicken.
Problem-Nachricht verschicken.


    Code
Code
              Mit dem Code wird dabei die Art des Problems genauer beschrieben.
● Mit dem Code wird dabei die Art des Problems genauer beschrieben.


                  0   Fehlerhaftes Header-Feld gefunden
0 Fehlerhaftes Header-Feld gefunden
                  1   Unbekannter Next-Header-Typ gefunden
1 Unbekannter Next-Header-Typ gefunden
                  2   Unbekannte IPv6-Option
2 Unbekannte IPv6-Option


    Pointer
Pointer
              Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.
● Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                         16
IPv6 - ICMPv6 Dirk Wagner Berlin 16
ICMP-Standard-Typen
ICMP-Standard-Typen


Echo Request – Type 128
Echo Request – Type 128
    Mit einem Echo Request wird um eine Antwort gebeten
Mit einem Echo Request wird um eine Antwort gebeten
              Ein Echo Request ist nichts anderes als ein simpler Ping
● Ein Echo Request ist nichts anderes als ein simpler Ping


    Das Datenfeld
Das Datenfeld
              kann mit Daten vergrößert werden, um größere Pakete zu produzieren
● kann mit Daten vergrößert werden, um größere Pakete zu produzieren
              So kann man zum Beispiel die MTU ermitteln.
● So kann man zum Beispiel die MTU ermitteln.


    Jedes System muss auf Echo Requests reagieren und mit Echo Replies antworten.
Jedes System muss auf Echo Requests reagieren und mit Echo Replies antworten.
              Auch sollte jedes System eine Anwendung zum Versenden und Empfangen von Echo
● Auch sollte jedes System eine Anwendung zum Versenden und Empfangen von Echo
                Request/Replies besitzen.
Request/Replies besitzen.


    Empfangene Echo Request
Empfangene Echo Request
              können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen
● können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen








IPv6 - ICMPv6                                                   Dirk Wagner Berlin             17
IPv6 - ICMPv6 Dirk Wagner Berlin 17
ICMP-Standard-Typen
ICMP-Standard-Typen


Echo Reply – Type 129
Echo Reply – Type 129
    Auf eine Echo-Request-Nachricht muss mit einem Echo Reply geantwortet werden
Auf eine Echo-Request-Nachricht muss mit einem Echo Reply geantwortet werden
              Das Paket ist bis auf das Typenfeld dasselbe.
● Das Paket ist bis auf das Typenfeld dasselbe.


    Echo-Reply-Nachrichten sollen nur an Unicast-Adressen verschickt werden
Echo-Reply-Nachrichten sollen nur an Unicast-Adressen verschickt werden


    Identifikation und der Sequenznummer
Identifikation und der Sequenznummer
              Anhand der Identifikation und der Sequenznummer wird der Empfänger die Antworten zu seinen
● Anhand der Identifikation und der Sequenznummer wird der Empfänger die Antworten zu seinen
                Anfragen zuordnen können
Anfragen zuordnen können


    Empfangene Echo-Reply-Nachrichten
Empfangene Echo-Reply-Nachrichten
              müssen an die Anwendung weitergereicht werden, die den zugehörigen Echo Request
● müssen an die Anwendung weitergereicht werden, die den zugehörigen Echo Request
                versendet hat.
versendet hat.
              An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden
● An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                       18
IPv6 - ICMPv6 Dirk Wagner Berlin 18
ICMP-Standard-Typen
ICMP-Standard-Typen


Multicast Listener Discovery – Type 130
Multicast Listener Discovery – Type 130
    MLD ist die Implementation von IGMP (IPv4) in IPv6
MLD ist die Implementation von IGMP (IPv4) in IPv6
              Es wird genutzt um Multicast Abonnements zu verwalten
● Es wird genutzt um Multicast Abonnements zu verwalten


    MLDv1 IGMPv2 entsprechen MLDv2 IGMPv3
MLDv1 IGMPv2 entsprechen MLDv2 IGMPv3
              Bei den jeweils neueren Versionen lässt sich bestimmen, welche Quell-Adressen für Multicast-
● Bei den jeweils neueren Versionen lässt sich bestimmen, welche Quell-Adressen für Multicast-
                Steams akzeptabel sind
Steams akzeptabel sind


    Unterstützung in Betriebsystemen
Unterstützung in Betriebsystemen
              Linux unterstützt es seit 2003 (2.5.68), Windows seit 2006 (Vista), FreeBSD seit 2009 (8.0)
● Linux unterstützt es seit 2003 (2.5.68), Windows seit 2006 (Vista), FreeBSD seit 2009 (8.0)








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                             19
IPv6 - ICMPv6 Dirk Wagner Berlin 19
Weblinks
Weblinks


    RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
              https://tools.ietf.org/html/rfc4861
● https://tools.ietf.org/html/rfc4861


    RFC 4443 – Internet Control Message Protocol (ICMPv6) for the Internet Protocol
RFC 4443 – Internet Control Message Protocol (ICMPv6) for the Internet Protocol
    Version 6 (IPv6) Specification
Version 6 (IPv6) Specification
              https://tools.ietf.org/html/rfc4443
● https://tools.ietf.org/html/rfc4443


    RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
    Specification
Specification
              https://tools.ietf.org/html/rfc3122
● https://tools.ietf.org/html/rfc3122


    IANA ICMP Parameters – vollständige Liste der ICMPv6-Typen und -Codes
IANA ICMP Parameters – vollständige Liste der ICMPv6-Typen und -Codes
              http://www.iana.org/assignments/icmpv6-parameters
● http://www.iana.org/assignments/icmpv6-parameters


    RFC 4890 – Recommendations for Filtering ICMPv6 Messages in Firewalls
RFC 4890 – Recommendations for Filtering ICMPv6 Messages in Firewalls
              https://tools.ietf.org/html/rfc4890
● https://tools.ietf.org/html/rfc4890








IPv6 - ICMPv6                                               Dirk Wagner Berlin       20
IPv6 - ICMPv6 Dirk Wagner Berlin 20
        IPv6
IPv6
Neighbor Discovery Protocol
Neighbor Discovery Protocol
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)
              Ersatz des Address Resolution Protocol (ARP) von IPv4 für IPv6
● Ersatz des Address Resolution Protocol (ARP) von IPv4 für IPv6




Verwendung
Verwendung
    NDP wird von den am IPv6-Netzwerk beteiligten Knoten benutzt
NDP wird von den am IPv6-Netzwerk beteiligten Knoten benutzt
              Link-Layer-Adresse von anderen Knoten ausfindig machen
● Link-Layer-Adresse von anderen Knoten ausfindig machen
                  die am selben Netzwerk angeschlossen sind
– die am selben Netzwerk angeschlossen sind
              Aktualisieren zwischengespeicherter Adressen
● Aktualisieren zwischengespeicherter Adressen


    Router finden, der Pakete weiterleiten kann
Router finden, der Pakete weiterleiten kann
              Für alle nicht am selben Netzwerk hängenden Knoten
● Für alle nicht am selben Netzwerk hängenden Knoten








IPv6 - ICMPv6                                                   Dirk Wagner Berlin   22
IPv6 - ICMPv6 Dirk Wagner Berlin 22
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


Funktionsweise                                                     In der Default Router List
Funktionsweise In der Default Router List
          Für NDP muss der Knoten für jedes Interface               ● werden alle Router verwaltet, die für das
● Für NDP muss der Knoten für jedes Interface ● werden alle Router verwaltet, die für das
            folgende Informationen verwalten                             Interface bekannt sind. Die Einträge
folgende Informationen verwalten Interface bekannt sind. Die Einträge
                                                                          verweisen auf Einträge im Neighbor Cache.
verweisen auf Einträge im Neighbor Cache.
    Im Neighbor Cache                                               ● Zusätzlich haben sie ein Ablaufdatum,
Im Neighbor Cache ● Zusätzlich haben sie ein Ablaufdatum,
          werden Adressen verwaltet, an die etwas gesendet             sodass alte Router verschwinden und nur
● werden Adressen verwaltet, an die etwas gesendet sodass alte Router verschwinden und nur
            wurde und die sich im selben Netzwerk befinden.               die erhalten bleiben, die ihre Anwesenheit
wurde und die sich im selben Netzwerk befinden. die erhalten bleiben, die ihre Anwesenheit
            Zu jedem Eintrag einer IPv6-Adresse steht ihre               verkünden.
Zu jedem Eintrag einer IPv6-Adresse steht ihre verkünden.
            Link-Layer-Adresse.
Link-Layer-Adresse.
          Auch weitere Informationen werden hier verwaltet,     NDP ICMPv6-Typen
● Auch weitere Informationen werden hier verwaltet, NDP ICMPv6-Typen
            wie zum Beispiel Pointer auf Pakete, die auf die
wie zum Beispiel Pointer auf Pakete, die auf die
            Adressauflösung warten, Informationen für die           ● Die Informationen zum Erstellen dieser
Adressauflösung warten, Informationen für die ● Die Informationen zum Erstellen dieser
            Erreichbarkeitsprüfung oder ob es ein Router ist.           Listen werden per ICMPv6 (Internet Control
Erreichbarkeitsprüfung oder ob es ein Router ist. Listen werden per ICMPv6 (Internet Control
                                                                        Message Protocol V6) ausgetauscht. NDP
Message Protocol V6) ausgetauscht. NDP
    Im Destination Cache                                               definiert zu diesem Zweck fünf ICMPv6-
Im Destination Cache definiert zu diesem Zweck fünf ICMPv6-
          werden Adressen verwaltet, an die etwas gesendet           Typen.
● werden Adressen verwaltet, an die etwas gesendet Typen.
            wurde. Für jeden Eintrag wird, per Link auf den
wurde. Für jeden Eintrag wird, per Link auf den
            Neighbor Cache, gespeichert, welches der
Neighbor Cache, gespeichert, welches der
            nächste Hop ist, den ein Paket nehmen soll.
nächste Hop ist, den ein Paket nehmen soll.


    In der Prefix List
In der Prefix List
          werden die Präfixe verwaltet, die auf demselben
● werden die Präfixe verwaltet, die auf demselben
            Netz gültig sind. Jeder Eintrag, außer der zur link-
Netz gültig sind. Jeder Eintrag, außer der zur link-
            lokalen Adresse, hat ein Ablaufdatum. Somit
lokalen Adresse, hat ein Ablaufdatum. Somit
            bleiben nur Netze in der Liste, die von einem
bleiben nur Netze in der Liste, die von einem
            Router verkündet werden.
Router verkündet werden.


IPv6 - ICMPv6                                                     Dirk Wagner Berlin                             23
IPv6 - ICMPv6 Dirk Wagner Berlin 23
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


    Router- und Präfix-Ermittlung
Router- und Präfix-Ermittlung
              Router versenden in gewissen Zeitabständen Router-Advertisement-Nachrichten per Multicast.
● 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
– Die Informationen in diesen Nachrichten werden verwendet, um die Default Router List und die Prefix List
                    zu erstellen.
zu erstellen.
              Nach Ablauf der angegebenen Lebenszeit werden die Einträge wieder aus den Listen gelöscht.
● 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.
– 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
● 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
per Router-Solicitation-Nachricht an die Router-Multicast-Adresse ein Router Advertisement
                erzwingen.
erzwingen.
                  Dies ist besonders beim Aktivieren eines neuen Interfaces von Vorteil, um mit der Konfiguration nicht
– Dies ist besonders beim Aktivieren eines neuen Interfaces von Vorteil, um mit der Konfiguration nicht
                    warten zu müssen.
warten zu müssen.


    Parameterermittlung
Parameterermittlung
              Mit diesem Mechanismus ermitteln Knoten relevante Parameter für den Link (z. B. die für den
● 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
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.
Beispiel den Wert für den Hop Limit), die für ausgehende Pakete verwendet werden müssen.


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






IPv6 - ICMPv6                                                           Dirk Wagner Berlin                                 24
IPv6 - ICMPv6 Dirk Wagner Berlin 24
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


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








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                               25
IPv6 - ICMPv6 Dirk Wagner Berlin 25
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


    Adressauflösung
Adressauflösung
              Um die Link-Layer-Adresse eines Knotens zu ermitteln, wird eine Neighbor-Solicitation-
● 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.
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
● 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 Adresse (z. B. Ethernet)
muss also auf Link-Layer-Ebene nicht nur auf seine originäre feste Adresse (z. B. Ethernet)
                hören, sondern auch auf eine, auf seiner IPv6-Adresse beruhende, spezifische Multicast-
hören, sondern auch auf eine, auf seiner IPv6-Adresse beruhende, spezifische Multicast-
                Adresse.
Adresse.
              Im Neighbor-Solicitation-Paket ist dann die vollständige gesuchte IPv6-Adresse in den
● 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.
Nutzdaten enthalten, und nur der Knoten mit der gleichen Adresse antwortet darauf.
              Er verschickt eine Neighbor-Advertisement-Nachricht.
● Er verschickt eine Neighbor-Advertisement-Nachricht.
              Die darin enthaltenen Informationen werden im Neighbor Cache gespeichert.
● 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,
● 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.
auf die er verweist, können ausgelöst werden.








IPv6 - ICMPv6                                                 Dirk Wagner Berlin                           26
IPv6 - ICMPv6 Dirk Wagner Berlin 26
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


    Beispiel
Beispiel
              Ein IPv6-Host in einem Ethernet-Netzwerk mit einer link-lokalen IPv6-Adresse
● Ein IPv6-Host in einem Ethernet-Netzwerk mit einer link-lokalen IPv6-Adresse
                fe80::021d:e0ff:fe2a:4242 hört auf der Link-Layer-Ebene nicht nur auf die Adresse
fe80::021d:e0ff:fe2a:4242 hört auf der Link-Layer-Ebene nicht nur auf die Adresse
                00:1d:e0:2a:42:42, sondern auch auf die Ethernet-Multicast-Adresse 33:33:ff:2a:42:42. 33:33 ist
00:1d:e0:2a:42:42, sondern auch auf die Ethernet-Multicast-Adresse 33:33:ff:2a:42:42. 33:33 ist
                dabei der Teil, der ein IPv6 Multicast-Paket kennzeichnet, ff:2a:42:42 identifiziert die eigentliche
dabei der Teil, der ein IPv6 Multicast-Paket kennzeichnet, ff:2a:42:42 identifiziert die eigentliche
                Gruppe.
Gruppe.
              Das Multicast-Ziel für ein Neighbor-Solicitation-Paket auf IPv6-Ebene ist dann ff02::1:ff2a:4242.
● Das Multicast-Ziel für ein Neighbor-Solicitation-Paket auf IPv6-Ebene ist dann ff02::1:ff2a:4242.








IPv6 - ICMPv6                                                     Dirk Wagner Berlin                               27
IPv6 - ICMPv6 Dirk Wagner Berlin 27
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


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








IPv6 - ICMPv6                                                 Dirk Wagner Berlin                           28
IPv6 - ICMPv6 Dirk Wagner Berlin 28
Neighbor Discovery Protocol (NDP)
Neighbor Discovery Protocol (NDP)


    Erkennung doppelter Adressen
Erkennung doppelter Adressen
              Mit diesem Verfahren ermitteln Netzknoten, ob die Adresse, die sie sich bei der
● Mit diesem Verfahren ermitteln Netzknoten, ob die Adresse, die sie sich bei der
                Autokonfiguration gegeben haben, eindeutig ist.
Autokonfiguration gegeben haben, eindeutig ist.


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








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                         29
IPv6 - ICMPv6 Dirk Wagner Berlin 29
ICMPv6-Typen
ICMPv6-Typen


Router Solicitation – Type 133
Router Solicitation – Type 133
              Per Router Solicitation an die Router-Multicast-Adresse werden alle Router im selben Netz
● Per Router Solicitation an die Router-Multicast-Adresse werden alle Router im selben Netz
                aufgefordert, sich zu melden.
aufgefordert, sich zu melden.
              Der Code dieser Nachricht ist immer 0.
● Der Code dieser Nachricht ist immer 0.
              Das Feld „Reserviert“ muss vom Sender mit Nullen initialisiert werden und der Empfänger muss
● Das Feld „Reserviert“ muss vom Sender mit Nullen initialisiert werden und der Empfänger muss
                es ignorieren.
es ignorieren.
              Die einzig mögliche Option ist die Link-Layer-Adresse des Senders.
● Die einzig mögliche Option ist die Link-Layer-Adresse des Senders.
              Um bei Protokollerweiterungen keine Probleme zu bekommen, müssen alle unbekannten
● Um bei Protokollerweiterungen keine Probleme zu bekommen, müssen alle unbekannten
                Optionen ignoriert werden.
Optionen ignoriert werden.








IPv6 - ICMPv6                                                 Dirk Wagner Berlin                           30
IPv6 - ICMPv6 Dirk Wagner Berlin 30
ICMPv6-Typen
ICMPv6-Typen


Router Advertisement – Type 134                                         Das Erreichbarkeits-Timeout
Router Advertisement – Type 134 Das Erreichbarkeits-Timeout
                                                                              ist ein 32-Bit-Integer, der angibt, wie viele
● ist ein 32-Bit-Integer, der angibt, wie viele
    Per Router Advertisement                                                     Millisekunden ein Eintrag im Neighbor Cache
Per Router Advertisement Millisekunden ein Eintrag im Neighbor Cache
        verkünden Router ihre Anwesenheit im Netz                             nach dem Empfangen von Daten noch als
● verkünden Router ihre Anwesenheit im Netz nach dem Empfangen von Daten noch als
        Entweder auf Anfrage per Router Solicitation oder                     erreichbar gelten soll.
● Entweder auf Anfrage per Router Solicitation oder erreichbar gelten soll.
          periodisch, um nicht vergessen zu werden.
periodisch, um nicht vergessen zu werden.
                                                                        Das Auflösungs-Timeout
Das Auflösungs-Timeout
    Das Hop-Limit
Das Hop-Limit
                                                                              ist ein 32-Bit-Integer, der angibt, nach wie
● ist ein 32-Bit-Integer, der angibt, nach wie
        ist ein 8-Bit-Wert, der die vom Router vorgeschlagene
● ist ein 8-Bit-Wert, der die vom Router vorgeschlagene
          Standard-Hop-Limits enthält.                                           vielen Millisekunden erneut ein Neighbor
Standard-Hop-Limits enthält. vielen Millisekunden erneut ein Neighbor
                                                                                  Solicitation gesendet werden soll.
Solicitation gesendet werden soll.
    Ein gesetztes M-Bit
Ein gesetztes M-Bit
        sagt dem Knoten, dass er neben Autokonfiguration für die     Gültige Optionen
● sagt dem Knoten, dass er neben Autokonfiguration für die Gültige Optionen
          IP-Adresse auch Stateful-Autokonfiguration verwenden               sind die Link-Layer-Adresse des Senders, die
IP-Adresse auch Stateful-Autokonfiguration verwenden ● sind die Link-Layer-Adresse des Senders, die
          soll.
soll.
                                                                                  MTU des Routers und alle gültigen Präfixe.
MTU des Routers und alle gültigen Präfixe.
    Ein gesetztes O-Bit
Ein gesetztes O-Bit
        sagt dem Knoten, dass er neben Autokonfiguration für         Um problemfreie Protokoll-erweiterungen zu
● sagt dem Knoten, dass er neben Autokonfiguration für Um problemfreie Protokoll-erweiterungen zu
          alle Nicht-IP-Adress-Informationen auch Stateful-             ermöglichen, müssen alle unbekannten Optionen
alle Nicht-IP-Adress-Informationen auch Stateful- ermöglichen, müssen alle unbekannten Optionen
          Autokonfiguration verwenden soll.                             ignoriert werden.
Autokonfiguration verwenden soll. ignoriert werden.


    Die Router-Lifetime
Die Router-Lifetime
        ist ein 16-Bit-Integer, der angibt, wie viele Sekunden ein
● ist ein 16-Bit-Integer, der angibt, wie viele Sekunden ein
          Router in der Default Router List bleiben soll.
Router in der Default Router List bleiben soll.
        Das Maximum sind 18,2 Stunden.
● Das Maximum sind 18,2 Stunden.
        Ein Wert von 0 besagt, dass der Router kein Default
● Ein Wert von 0 besagt, dass der Router kein Default
          Router ist und nicht in die Default Router List eingetragen
Router ist und nicht in die Default Router List eingetragen
          werden soll.
werden soll.


IPv6 - ICMPv6                                                           Dirk Wagner Berlin                                       31
IPv6 - ICMPv6 Dirk Wagner Berlin 31
ICMPv6-Typen
ICMPv6-Typen


Zeile 1.077: Zeile 1.077:




IPv6 - ICMPv6                     Dirk Wagner Berlin   32
IPv6 - ICMPv6 Dirk Wagner Berlin 32
ICMPv6-Typen
ICMPv6-Typen


Neighbor Solicitation – Type 135
Neighbor Solicitation – Type 135
    Per Neighbor Solicitation
Per Neighbor Solicitation
            (Nachbar Anfrage) an die Link-Layer-Multicast-
● (Nachbar Anfrage) an die Link-Layer-Multicast-
                Adresse einer Ipv6-Adresse werden IPv6-
Adresse einer Ipv6-Adresse werden IPv6-
                Adressen zu Link-Layer-Adressen aufgelöst.
Adressen zu Link-Layer-Adressen aufgelöst.
            Ebenfalls wird so die Erreichbarkeit eines
● Ebenfalls wird so die Erreichbarkeit eines
                Knotens geprüft.
Knotens geprüft.


    Link-Layer-Multicast-Adresse
Link-Layer-Multicast-Adresse
                                                                  Zieladresse
Zieladresse
            werden aus der Multicast-Adresse der
● werden aus der Multicast-Adresse der
                betreffenden IPv6-Adresse mittels Adress-
betreffenden IPv6-Adresse mittels Adress-
                                                                        IPv6-Adresse, die in eine Link-Layer-
● IPv6-Adresse, die in eine Link-Layer-
                Mapping berechnet                                         Adresse aufgelöst werden soll
Mapping berechnet Adresse aufgelöst werden soll
            Die letzten 3 Byte xx:yy:zz der Solicited-Node         Es darf keine Multicast-Adresse
● Die letzten 3 Byte xx:yy:zz der Solicited-Node ● Es darf keine Multicast-Adresse
                Multicast Adresse werden auf die letzten 3 Byte           angegeben werden
Multicast Adresse werden auf die letzten 3 Byte angegeben werden
                der Link-Layer Adresse 33:33:FF:xx:yy:zz
der Link-Layer Adresse 33:33:FF:xx:yy:zz
                gemappt
gemappt
                                                                  Einzig mögliche Option
Einzig mögliche Option
    Typ und Code                                                       Link-Layer-Adresse des Senders
Typ und Code ● Link-Layer-Adresse des Senders
            Type wird auf 135 gesetzt und der Code auf 0
● Type wird auf 135 gesetzt und der Code auf 0
                                                                  Unbekannten Optionen müssen
Unbekannten Optionen müssen
    Reserviertes Feld                                           ignoriert werden
Reserviertes Feld ignoriert werden
            muss vom Sender mit Nullen initialisiert und           Um bei Protokollerweiterungen keine
● muss vom Sender mit Nullen initialisiert und ● Um bei Protokollerweiterungen keine
                vom Empfänger ignoriert werden                             Probleme zu bekommenv
vom Empfänger ignoriert werden Probleme zu bekommenv
IPv6 - ICMPv6                                                     Dirk Wagner Berlin                               33
IPv6 - ICMPv6 Dirk Wagner Berlin 33
ICMPv6-Typen
ICMPv6-Typen


Neighbor Advertisement – Type 136
Neighbor Advertisement – Type 136
    Mit einer Neighbor-Advertisement-
Mit einer Neighbor-Advertisement-
    Nachricht
Nachricht
            wird auf Neighbor-Solicitation-Nachrichten
● wird auf Neighbor-Solicitation-Nachrichten
                geantwortet.
geantwortet.


    Typ und Code
Typ und Code
            Type wird auf 136 gesetzt und der Code auf 0
● Type wird auf 136 gesetzt und der Code auf 0


    R-Bit                                                     Reserviertes Feld
R-Bit Reserviertes Feld
            wird gesetzt, wenn der Knoten ein Router ist         muss vom Sender mit Nullen initialisiert
● wird gesetzt, wenn der Knoten ein Router ist ● muss vom Sender mit Nullen initialisiert
                                                                        und vom Empfänger ignoriert werden
und vom Empfänger ignoriert werden
    S-Bit
S-Bit
            wird gesetzt, wenn das Neighbor                 Zieladresse
● wird gesetzt, wenn das Neighbor Zieladresse
                Advertisement aufgrund einer Unicast-                 Link-Layer-Adresse, die erfragt wurde
Advertisement aufgrund einer Unicast- ● Link-Layer-Adresse, die erfragt wurde
                Neighbor-Solicitation-Nachricht gesendet wird
Neighbor-Solicitation-Nachricht gesendet wird


    O-Bit                                                     Option
O-Bit Option
            bedeutet, dass der Eintrag im Neighbor Cache
● bedeutet, dass der Eintrag im Neighbor Cache
                                                                      ist die Link-Layer-Adresse des Senders.
● ist die Link-Layer-Adresse des Senders.
                aktualisiert werden muss                             Unbekannten Optionen ignoriert werden,
aktualisiert werden muss ● Unbekannten Optionen ignoriert werden,
                                                                        um bei Protokollerweiterungen Probleme
um bei Protokollerweiterungen Probleme
                                                                        zu vermeiden
zu vermeiden


IPv6 - ICMPv6                                                   Dirk Wagner Berlin                                 34
IPv6 - ICMPv6 Dirk Wagner Berlin 34
ICMPv6-Typen
ICMPv6-Typen


                Redirect – Type 137
Redirect – Type 137
                  Per Redirect-Nachricht
Per Redirect-Nachricht
                      teilen Router mit, wenn es einen besseren ersten Hop für ein gewisses Ziel gibt.
● teilen Router mit, wenn es einen besseren ersten Hop für ein gewisses Ziel gibt.


                  Type und Code
Type und Code
                      Der Typ wird auf 137 gesetzt und der Code auf 0.
● Der Typ wird auf 137 gesetzt und der Code auf 0.


                  Das reservierte Feld
Das reservierte Feld
                      muss vom Sender mit Nullen initialisiert werden und vom Empfänger ignoriert
● muss vom Sender mit Nullen initialisiert werden und vom Empfänger ignoriert
                        werden.
werden.


                  Die Hop-Adresse
Die Hop-Adresse
                      ist der zu bevorzugende Router für die Adresse.
● ist der zu bevorzugende Router für die Adresse.


                  Die Zieladresse
Die Zieladresse
                      ist die Adresse für die es einen besseren First-Hop gibt.
● ist die Adresse für die es einen besseren First-Hop gibt.






                    Die einzigen möglichen Optionen
Die einzigen möglichen Optionen
                              sind die Link-Layer-Adresse des Senders
● sind die Link-Layer-Adresse des Senders
                                und der Header des auslösenden
und der Header des auslösenden
                                Paketes.
Paketes.
                              Um bei Protokollerweiterungen keine
● Um bei Protokollerweiterungen keine
                                Probleme zu bekommen, müssen alle
Probleme zu bekommen, müssen alle
                                unbekannten Optionen ignoriert werden.
unbekannten Optionen ignoriert werden.








IPv6 - ICMPv6       Dirk Wagner Berlin                                                               35
IPv6 - ICMPv6 Dirk Wagner Berlin 35
Implementierung in Betriebssystemen
Implementierung in Betriebssystemen


Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen
Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen
aufzulösen
aufzulösen
    Unter Linux erhält man mit dem iproute2-Werkzeug Einsicht in den Neighbor Cache
Unter Linux erhält man mit dem iproute2-Werkzeug Einsicht in den Neighbor Cache
    ip -6 neigh
ip -6 neigh
    2001:470:1f0b:2f2:5cad:a77f:aaff:849 dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE
2001:470:1f0b:2f2:5cad:a77f:aaff:849 dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE
    fe80::2a10:7bff:fe65:58a dev wlan0 lladdr 28:10:7b:65:ab:cd router REACHABLE
fe80::2a10:7bff:fe65:58a dev wlan0 lladdr 28:10:7b:65:ab:cd router REACHABLE
    2001:470:1f0b:2f2::cafe dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE
2001:470:1f0b:2f2::cafe dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE








IPv6 - ICMPv6                                     Dirk Wagner Berlin                   36
IPv6 - ICMPv6 Dirk Wagner Berlin 36
Implementierung in Betriebssystemen
Implementierung in Betriebssystemen


Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen aufzulösen
Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen aufzulösen
    Auf BSD-basierten Systemen hilft hierbei das Werkzeug ndp
Auf BSD-basierten Systemen hilft hierbei das Werkzeug ndp
        wobei die Optionen '-an' bedeuten, dass alle Hosts numerisch angezeigt werden sollen; hier bei FreeBSD 9
● wobei die Optionen '-an' bedeuten, dass alle Hosts numerisch angezeigt werden sollen; hier bei FreeBSD 9


    ndp -an
ndp -an
    Neighbor                             Linklayer Address Netif Expire   S Flags
Neighbor Linklayer Address Netif Expire S Flags
    2001:475:abcd:2f2:3189:67c1:b550:9400 c6:ab:27:56:b5:30 em0 14s       R R
2001:475:abcd:2f2:3189:67c1:b550:9400 c6:ab:27:56:b5:30 em0 14s R R
    # <-- Rechner mit Privacy Extensions
# <-- Rechner mit Privacy Extensions
    2001:475:abcd:2f2:211:25ff:fe32:10ab 00:11:25:32:10:ab   em0 permanent R
2001:475:abcd:2f2:211:25ff:fe32:10ab 00:11:25:32:10:ab em0 permanent R
    fe80::211:25ff:fe32:10ab%em0         00:11:25:32:10:ab   em0 permanent R
fe80::211:25ff:fe32:10ab%em0 00:11:25:32:10:ab em0 permanent R
    2001:475:abcd:2f2::cafe             00:11:25:32:10:ab   em0 permanent R
2001:475:abcd:2f2::cafe 00:11:25:32:10:ab em0 permanent R
    # <-- Alias-Adresse
# <-- Alias-Adresse
    fe80::2a10:7bff:fe65:58a%em0         28:10:7b:65:ab:cd   em0 23h59m25s S R
fe80::2a10:7bff:fe65:58a%em0 28:10:7b:65:ab:cd em0 23h59m25s S R
    # <-- Router
# <-- Router
    2001:475:abcd:2f2:5cad:a77f:aaff:849 00:11:25:32:10:ab   em0 permanent R
2001:475:abcd:2f2:5cad:a77f:aaff:849 00:11:25:32:10:ab em0 permanent R
    fe80::c6ab:27ff:fe56:b530%em0       c6:ab:27:56:b5:30   em0 24s       R R
fe80::c6ab:27ff:fe56:b530%em0 c6:ab:27:56:b5:30 em0 24s R R
    # <-- link-local address
# <-- link-local address




    Hierbei ist insbesondere die Spalte Expire zu beachten
Hierbei ist insbesondere die Spalte Expire zu beachten
        legt fest, wann ein Namenseintrag als veraltet einzustufen ist
● legt fest, wann ein Namenseintrag als veraltet einzustufen ist
        Die Adressen des Rechners selbst sind dabei permanent, der Router liegt hier bei fast 24 Stunden und die Nachbargeräte im
● Die Adressen des Rechners selbst sind dabei permanent, der Router liegt hier bei fast 24 Stunden und die Nachbargeräte im
          Netzwerk liegen zumeist bei unter einer Minute, bis der Eintrag wieder aufgefrischt wird.
Netzwerk liegen zumeist bei unter einer Minute, bis der Eintrag wieder aufgefrischt wird.


IPv6 - ICMPv6                                                             Dirk Wagner Berlin                                       37
IPv6 - ICMPv6 Dirk Wagner Berlin 37
Implementierung in Betriebssystemen
Implementierung in Betriebssystemen


Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen
Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen
aufzulösen
aufzulösen
    Unter Windows lautet der Befehl
Unter Windows lautet der Befehl
                netsh interface ipv6 show neighbors level=verbose
netsh interface ipv6 show neighbors level=verbose








IPv6 - ICMPv6                                     Dirk Wagner Berlin   38
IPv6 - ICMPv6 Dirk Wagner Berlin 38
Weblinks
Weblinks


    RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
              https://tools.ietf.org/html/rfc4861
● https://tools.ietf.org/html/rfc4861


    RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
    Specification
Specification
              https://tools.ietf.org/html/rfc3122
● https://tools.ietf.org/html/rfc3122








IPv6 - ICMPv6                                         Dirk Wagner Berlin     39
IPv6 - ICMPv6 Dirk Wagner Berlin 39
    IPv6
IPv6
Autokonfiguration
Autokonfiguration
Autokonfiguration
Autokonfiguration


Stateless Address Autoconfiguration
Stateless Address Autoconfiguration
            (SLAAC, zustandslose Adressenautokonfiguration, spezifiziert in RFC 4862)
● (SLAAC, zustandslose Adressenautokonfiguration, spezifiziert in RFC 4862)


      Ein Host kann vollautomatisch eine funktionsfähige Internetverbindung aufbauen
Ein Host kann vollautomatisch eine funktionsfähige Internetverbindung aufbauen
            Dazu kommuniziert er mit den für sein Netzwerksegment zuständigen Routern
● Dazu kommuniziert er mit den für sein Netzwerksegment zuständigen Routern
            um die notwendige Konfiguration zu ermitteln
● um die notwendige Konfiguration zu ermitteln








IPv6 - Einführung                                             Dirk Wagner Berlin           41
IPv6 - Einführung Dirk Wagner Berlin 41
IPv6 Autokonfiguration: Plug & Play
IPv6 Autokonfiguration: Plug & Play


Zeile 1.251: Zeile 1.251:




IPv6 - ICMPv6                         Dirk Wagner Berlin   42
IPv6 - ICMPv6 Dirk Wagner Berlin 42
Autokonfiguration
Autokonfiguration
Ablauf
Ablauf


    link-lokale Adresse
link-lokale Adresse
            Zur initialen Kommunikation mit dem Router weist sich der Host eine link-lokale Adresse zu, die im Falle
● Zur initialen Kommunikation mit dem Router weist sich der Host eine link-lokale Adresse zu, die im Falle
                einer Ethernet-Schnittstelle etwa aus deren Hardware-Adresse berechnet werden kann.
einer Ethernet-Schnittstelle etwa aus deren Hardware-Adresse berechnet werden kann.


    Router Solicitation
Router Solicitation
            Damit kann ein Gerät sich mittels des Neighbor Discovery Protocols (NDP, siehe auch ICMPv6-
● Damit kann ein Gerät sich mittels des Neighbor Discovery Protocols (NDP, siehe auch ICMPv6-
                Funktionalität) auf die Suche nach den Routern in seinem Netzwerksegment machen.
Funktionalität) auf die Suche nach den Routern in seinem Netzwerksegment machen.
            Dies geschieht durch eine Anfrage an die Multicast-Adresse ff02::2, über die alle Router eines Segments
● Dies geschieht durch eine Anfrage an die Multicast-Adresse ff02::2, über die alle Router eines Segments
                erreichbar sind (Router Solicitation).
erreichbar sind (Router Solicitation).
            Ein Router versendet auf eine solche Anfrage hin Information zu verfügbaren Präfixen, also Information
● Ein Router versendet auf eine solche Anfrage hin Information zu verfügbaren Präfixen, also Information
                über die Adressbereiche, aus denen ein Gerät sich selbst Unicast-Adressen zuweisen darf.
über die Adressbereiche, aus denen ein Gerät sich selbst Unicast-Adressen zuweisen darf.


    Router Advertisements
Router Advertisements
            Die Pakete, die diese Informationen tragen, werden Router Advertisements genannt. Sie besitzen
● Die Pakete, die diese Informationen tragen, werden Router Advertisements genannt. Sie besitzen
                ICMPv6-Typ 134 (0x86) und besitzen Informationen über die Lifetime, die MTU und das Präfix des
ICMPv6-Typ 134 (0x86) und besitzen Informationen über die Lifetime, die MTU und das Präfix des
                Netzwerks.
Netzwerks.
            An einen solchen Präfix hängt der Host den auch für die link-lokale Adresse verwendeten Interface-
● An einen solchen Präfix hängt der Host den auch für die link-lokale Adresse verwendeten Interface-
                Identifier an.
Identifier an.


    Duplicate Address Detection
Duplicate Address Detection
            Um die doppelte Vergabe einer Adresse zu verhindern, ist der Mechanismus Duplicate Address Detection
● Um die doppelte Vergabe einer Adresse zu verhindern, ist der Mechanismus Duplicate Address Detection
                (DAD – Erkennung doppelt vergebener Adressen) vorgesehen.
(DAD – Erkennung doppelt vergebener Adressen) vorgesehen.
            Ein Gerät darf bei der Autokonfiguration nur unvergebene Adressen auswählen. Der DAD-Vorgang läuft
● Ein Gerät darf bei der Autokonfiguration nur unvergebene Adressen auswählen. Der DAD-Vorgang läuft
                ebenfalls ohne Benutzereingriff via NDP ab.
ebenfalls ohne Benutzereingriff via NDP ab.


IPv6 - ICMPv6                                                         Dirk Wagner Berlin                                   43
IPv6 - ICMPv6 Dirk Wagner Berlin 43
Autokonfiguration
Autokonfiguration
Gültigkeitsangaben
Gültigkeitsangaben


    Valid Lifetime und Preferred Lifetime
Valid Lifetime und Preferred Lifetime
              Router können bei der Vergabe von Adresspräfixen begrenzte Gültigkeitszeiten mitgeben: Valid
● Router können bei der Vergabe von Adresspräfixen begrenzte Gültigkeitszeiten mitgeben: Valid
                Lifetime und Preferred Lifetime.
Lifetime und Preferred Lifetime.
              Innerhalb der Valid Lifetime darf der angegebene Präfix zur Kommunikation verwendet werden
● Innerhalb der Valid Lifetime darf der angegebene Präfix zur Kommunikation verwendet werden
              innerhalb der Preferred Lifetime soll dieser Präfix einem anderen, dessen Valid Lifetime schon
● innerhalb der Preferred Lifetime soll dieser Präfix einem anderen, dessen Valid Lifetime schon
                abgelaufen ist, vorgezogen werden.
abgelaufen ist, vorgezogen werden.


    Router Advertisements
Router Advertisements
              Router verschicken regelmäßig Router Advertisements an alle Hosts in einem Netzsegment, für
● Router verschicken regelmäßig Router Advertisements an alle Hosts in einem Netzsegment, für
                das sie zuständig sind, mittels derer die Präfix-Gültigkeitszeiten aufgefrischt werden; durch
das sie zuständig sind, mittels derer die Präfix-Gültigkeitszeiten aufgefrischt werden; durch
                Änderung der Advertisements können Hosts umnummeriert werden.
Änderung der Advertisements können Hosts umnummeriert werden.
              Sind die Router Advertisements nicht über IPsec authentifiziert, ist die Herabsetzung der
● Sind die Router Advertisements nicht über IPsec authentifiziert, ist die Herabsetzung der
                Gültigkeitszeit eines einem Host bereits bekannten Präfixes auf unter zwei Stunden jedoch nicht
Gültigkeitszeit eines einem Host bereits bekannten Präfixes auf unter zwei Stunden jedoch nicht
                möglich.
möglich.








IPv6 - ICMPv6                                                   Dirk Wagner Berlin                           44
IPv6 - ICMPv6 Dirk Wagner Berlin 44
  IPv6 Autokonfiguration: Neighbor Discovery
  IPv6 Autokonfiguration: Neighbor Discovery


Zeile 1.308: Zeile 1.308:




IPv6 - ICMPv6                     Dirk Wagner Berlin   45
IPv6 - ICMPv6 Dirk Wagner Berlin 45
IPv6
IPv6
Autokonfiguration
Autokonfiguration


    Neuer Host konfiguriert lokale Adresse
Neuer Host konfiguriert lokale Adresse


    Lokale Adresse wird per Neighbor-Discovery-Protokoll verifiziert
Lokale Adresse wird per Neighbor-Discovery-Protokoll verifiziert


    Host sendet dann Router Solicitation Message mit lokaler Adresse
Host sendet dann Router Solicitation Message mit lokaler Adresse


    Router antwortet mit Router Advertisement Message:
Router antwortet mit Router Advertisement Message:
      ● Enthält Informationen zu Adreß-Präfix und globale Adresse des neuen Hosts
● Enthält Informationen zu Adreß-Präfix und globale Adresse des neuen Hosts
        (stateful autoconfiguration oder stateless autoconfiguration)
(stateful autoconfiguration oder stateless autoconfiguration)








                                            Router Solicitation
Router Solicitation
                                Router Advertisement
Router Advertisement
                Router                                                     Neuer Host
Router Neuer Host








IPv6 - ICMPv6                                         Dirk Wagner Berlin               46
IPv6 - ICMPv6 Dirk Wagner Berlin 46
  IPv6 Autokonfiguration: Neighbor Discovery
  IPv6 Autokonfiguration: Neighbor Discovery


Zeile 1.338: Zeile 1.338:




IPv6 - ICMPv6                     Dirk Wagner Berlin   47
IPv6 - ICMPv6 Dirk Wagner Berlin 47
  IPv6 Autokonfiguration: Neighbor Discovery
  IPv6 Autokonfiguration: Neighbor Discovery


Zeile 1.344: Zeile 1.344:




IPv6 - ICMPv6                     Dirk Wagner Berlin   48
IPv6 - ICMPv6 Dirk Wagner Berlin 48
  IPv6 Autokonfiguration: Neighbor Discovery
  IPv6 Autokonfiguration: Neighbor Discovery


Zeile 1.350: Zeile 1.350:




IPv6 - ICMPv6                     Dirk Wagner Berlin   49
IPv6 - ICMPv6 Dirk Wagner Berlin 49
Autokonfiguration und DHCPv6
Autokonfiguration und DHCPv6


    Stateful Address Configuration
Stateful Address Configuration
              Die IPv6-Autokonfiguration unterscheidet sich konzeptionell von DHCP beziehungsweise
● Die IPv6-Autokonfiguration unterscheidet sich konzeptionell von DHCP beziehungsweise
                DHCPv6.
DHCPv6.
                  Bei der Adressvergabe durch DHCPv6 wird von „Stateful Address Configuration“ gesprochen sinngemäß:
– Bei der Adressvergabe durch DHCPv6 wird von „Stateful Address Configuration“ gesprochen sinngemäß:
                    Adressvergabe, über die Buch geführt wird, etwa durch einen DHCP-Server
Adressvergabe, über die Buch geführt wird, etwa durch einen DHCP-Server
                  definiert in RFC 3315
– definiert in RFC 3315
              Autokonfiguration ist eine „Stateless Address (Auto)Configuration“
● Autokonfiguration ist eine „Stateless Address (Auto)Configuration“
                  Geräte weisen sich selbst eine Adresse zu
– Geräte weisen sich selbst eine Adresse zu
                  über diese Vergabe wird nicht Buch geführt
– über diese Vergabe wird nicht Buch geführt


    Grenzen der Autokonfiguration
Grenzen der Autokonfiguration
              Mittels der Autokonfiguration können an Clients keine Informationen zu Host-, Domainnamen,
● Mittels der Autokonfiguration können an Clients keine Informationen zu Host-, Domainnamen,
                DNS, NTP-Server etc. mitgeteilt werden, sofern diese nicht spezifische Erweiterungen von NDP
DNS, NTP-Server etc. mitgeteilt werden, sofern diese nicht spezifische Erweiterungen von NDP
                unterstützen.
unterstützen.


    Stateless DHCPv6
Stateless DHCPv6
              Als Alternative hat sich der zusätzliche Einsatz eines DHCPv6-Servers etabliert.
● Als Alternative hat sich der zusätzliche Einsatz eines DHCPv6-Servers etabliert.
              Dieser liefert die gewünschten Zusatzinformationen, kümmert sich dabei aber nicht um die
● Dieser liefert die gewünschten Zusatzinformationen, kümmert sich dabei aber nicht um die
                Adressvergabe.
Adressvergabe.
              Man spricht in diesem Fall von Stateless DHCPv6 (vgl. RFC 3736).
● Man spricht in diesem Fall von Stateless DHCPv6 (vgl. RFC 3736).
              Dem Client kann mittels des Managed-Flags in der Antwort auf eine NDP-Router-Solicitation
● Dem Client kann mittels des Managed-Flags in der Antwort auf eine NDP-Router-Solicitation
                angezeigt werden, dass er eine DHCPv6-Anfrage stellen und somit die Zusatzinformationen
angezeigt werden, dass er eine DHCPv6-Anfrage stellen und somit die Zusatzinformationen
                beziehen soll.
beziehen soll.
IPv6 - ICMPv6                                                       Dirk Wagner Berlin                               50
IPv6 - ICMPv6 Dirk Wagner Berlin 50
  IPv6 Autokonfiguration: DHCPv6
  IPv6 Autokonfiguration: DHCPv6


Zeile 1.382: Zeile 1.382:




IPv6 - ICMPv6                     Dirk Wagner Berlin   51
IPv6 - ICMPv6 Dirk Wagner Berlin 51
  IPv6 Autokonfiguration: DHCPv6
  IPv6 Autokonfiguration: DHCPv6


Zeile 1.388: Zeile 1.388:




IPv6 - ICMPv6                     Dirk Wagner Berlin   52
IPv6 - ICMPv6 Dirk Wagner Berlin 52




[[Kategorie:IPv6/ICMP]]
[[Kategorie:IPv6/ICMP]]
</noinclude>
</noinclude>

Version vom 28. Juli 2023, 11:40 Uhr

ICMPv6 - Internet Control Message Protocol für IPv6

Beschreibung

Das Internet Control Message Protocol for the Internet Protocol Version 6 (ICMPv6) ist die mit IPv6 zusammen verwendete Version des Internet Control Message Protocol.

Im Gegensatz zum ICMP bei IPv4 ist ICMPv6 zwingend für den Betrieb von IPv6 nötig.

  • Ein generelles Blockieren von ICMPv6 auf der Firewall führt dazu, dass IPv6 nicht funktioniert (vgl.
  • RFC 4890).

ICMPv6 dient als Hilfsprotokoll für IPv6, ist in derselben OSI-Schicht 3 wie dieses angesiedelt und nutzt das IPv6-Protokoll zum Versand von ICMP-Nachrichten.

  • Als Protokoll-Nummer wird dabei 58 ins Next-Header-Feld des IPv6-Headers eingefügt.
ICMPv6 (Internet Control Message Protocol Version 6)
Familie: Internetprotokollfamilie
Einsatzgebiet: Obligatorischer Zusatz zu IPv6, Fehlermeldungen, Diagnose, Autoconfiguration, Routing
Internet-Protokolle im TCP/IP-Protokollstapel
Internet ICMPv6
IPv6
Netzzugang Ethernet Token
Bus
IEEE
802.11a/b/g/n
FDDI
Standards:

RFC 8200 (2017) RFC 4443 (2006)

Header

Das Feld Type gibt die Klasse der ICMP-Nachricht an, welche mit dem Feld Code genauer spezifiziert werden kann.
  • Die Prüfsumme wird zur Verifizierung der Gültigkeit des ICMPv6-Pakets benutzt.
  • Der restliche Inhalt der ICMP-Nachricht wird durch den jeweiligen Typ bestimmt.
  • Bei Fehlernachrichten wird nach den möglichen zusätzlichen Feldern immer noch so viel wie möglich vom fehlerverursachenden Paket angehängt.
ICMPv6 Header
0 Type Code Prüfsumme
ICMPv6-Nachricht …

Prüfsumme

Prüfsummen-Schema
0 IPv6-Absender-Adresse
32
64
96
128 IPv6-Ziel-Adresse
160
192
224
256 IPv6-Nutzlast-Größe
288 Checksumme 0 Next Header 58

Die Prüfsumme (engl. checksum) eines ICMPv6-Pakets ist ein 16-Bit-Einerkomplement der Summe des Einerkomplements der gesamten ICMPv6-Nachricht.

  • Zusätzlich zur Nachricht wird noch ein IPv6-Pseudoheader vorne angehängt.
  • Zur Berechnung der Prüfsumme wird das Prüfsummenfeld auf 0 gesetzt.
  • Der zur Berechnung der Prüfsumme verwendete Pseudoheader sieht wie im Schema nebenan aus.

Dies ist eine der Neuerungen von ICMPv6 gegenüber ICMP, wo die Prüfsumme nur über den ICMP-Header berechnet wurde.

Verarbeitung

Regeln für die Verarbeitung von ICMPv6-Nachrichten
  • Unbekannte ICMPv6-Fehlernachrichten müssen an die darüberliegende Netzwerkschicht weitergereicht werden
  • Unbekannte ICMPv6-Informationsnachrichten müssen ohne Benachrichtigung des Absenders verworfen werden
  • Jeder Fehlernachricht wird am Ende so viel wie möglich des fehlerverursachenden Pakets angehängt
  • Die Protokollnummer zum Weiterreichen von unbekannten Fehlernachrichten wird aus dem angehängten Originalpaket entnommen
Auf folgende Pakete werden keine Fehlernachrichten versandt
  • Fehlernachrichten
  • Pakete an Multicast-, Link-Level-Multicast- oder Link-Level-Broadcast-Adressen mit folgenden Ausnahmen:
    • Packet-Too-Big-Nachrichten
    • Parameter-Problem-Nachrichten mit Code 2 – unbekannte IPv6-Option
  • Das Netz darf nicht mit ICMPv6-Fehlernachrichten geflutet werden.

Nachrichten-Typen

Die Nachrichten-Typen werden in zwei Gruppen unterteilt
  • Die ersten 128 Typen (0–127) mit dem höchstwertigen Bit (engl. most significant bit) auf 0, sind Fehlernachrichten.
  • Die zweiten 128 Typen (128–255), mit dem höchstwertigen Bit auf 1, sind Informationsnachrichten.
Fehlernachrichten
Type Beschreibung RFC
1 Destination Unreachable RFC 4443
2 Packet Too Big RFC 4443
3 Time Exceeded RFC 4443
4 Parameter Problem RFC 4443
100 Private experimentation
101 Private experimentation
Informationsnachrichten
Type Beschreibung RFC
128 Echo Request RFC 4443
129 Echo Reply RFC 4443
130 Multicast Listener Query RFC 2710 und RFC 3810
131 Version 1 Multicast Listener Report RFC 2710
132 Multicast Listener Done RFC 2710
133 Router Solicitation RFC 4861
134 Router Advertisement RFC 4861
135 Neighbor Solicitation RFC 4861
136 Neighbor Advertisement RFC 4861
137 Redirect RFC 4861
138 Router Renumbering RFC 2894
139 ICMP Node Information Query RFC 4620
140 ICMP Node Information Response RFC 4620
141 Inverse Neighbor Discovery Solicitation Message RFC 3122
142 Inverse Neighbor Discovery Advertisement Message RFC 3122
143 Version 2 Multicast Listener Report RFC 3810
144 Home Agent Address Discovery Request Message RFC 3775
145 Home Agent Address Discovery Reply Message RFC 3775
146 Mobile Prefix Solicitation RFC 3775
147 Mobile Prefix Advertisement RFC 3775
148 Certification Path Solicitation Message RFC 3971
149 Certification Path Advertisement Message RFC 3971
150 ICMP messages utilized by experimental mobility protocols such as Seamoby RFC 4065
151 Multicast Router Advertisement RFC 4286
152 Multicast Router Solicitation RFC 4286
153 Multicast Router Termination RFC 4286
155 RPL Control Message RFC 6550
200 Private experimentation
201 Private experimentation
255 Reserved for expansion of ICMPv6 informational messages

Destination Unreachable – Type 1

Destination-Unreachable-Schema
0 Type Code Prüfsumme
32 Unbenutzt
Fehlerhaftes Paket

Destination-Unreachable-Nachrichten sollten vom Router erzeugt werden, wenn ein Paket nicht ausgeliefert werden konnte.

  • Wenn das Paket wegen Überlastung fallen gelassen wurde, muss keine Destination Unreachable versandt werden.

Wenn das Paket wegen fehlender Routen nicht ausgeliefert wurde, wird der Code 0 gesetzt.

  • Ist das Ausliefern administrativ verboten (Firewall), wird der Code 1 gesetzt.
  • Wenn der Router die IPv6-Adresse nicht auflösen kann, oder ein Problem mit dem Link hat, wird der Code 3 gesetzt.
  • Wenn ein Zielhost für ein UDP-Paket keinen Listener hat, sollte er ein Destination Unreachable mit Code 4 versenden.

Wenn ein Destination Unreachable empfangen wird, muss es der darüberliegenden Schicht weitergereicht werden.

Packet Too Big – Type 2

Packet-Too-Big-Schema
0 Type Code Prüfsumme
32 MTU
Fehlerhaftes Paket

Eine Packet-Too-Big-Nachricht muss vom Router erzeugt werden, wenn ein Paket nicht weitergeleitet werden kann, weil es größer ist als die maximale MTU des Links, über den es versendet werden soll. Packet-Too-Big-Nachrichten werden vom Path MTU Discovery gebraucht, um die pfadabhängige MTU zu ermitteln.

Der Code sollte vom Sender auf 0 gesetzt und vom Empfänger ignoriert werden.

Wenn ein Packet Too Big empfangen wird, muss es dem darüberliegenden Layer weitergereicht werden.

Time Exceeded – Type 3

Time-Exceeded-Schema
0 Type Code Prüfsumme
32 Unbenutzt
Fehlerhaftes Paket

Wenn ein Router ein Paket mit einem Hop-Limit von 0 erhält, oder den Time-to-Live-Wert auf 0 reduziert, muss er das Paket verwerfen und ein Time Exceeded mit Code 0 an den Absender versenden.

  • Das zeigt entweder eine Endlosschleife im Routing an oder ein zu kleines anfängliches Hop-Limit.

Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit ankommen, wird das Paket verworfen und es muss ein Time Exceeded mit Code 1 versendet werden.

Parameter Problem – Type 4

Parameter-Problem-Schema
0 Type Code Prüfsumme
32 Pointer
Fehlerhaftes Paket

Wenn ein Host beim Verarbeiten eines IPv6-Pakets ein Problem in einem Feld feststellt und nicht mit der Verarbeitung weiterfahren kann, muss er das Paket verwerfen und eine Parameter-Problem-Nachricht verschicken.

Mit dem Code wird dabei die Art des Problems genauer beschrieben.

0 Fehlerhaftes Header-Feld gefunden
1 Unbekannter Next-Header-Typ gefunden
2 Unbekannte IPv6-Option
3 Unvollständiger IPv6 Header Chain im ersten IPv6 Fragment

Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.

Echo Request – Type 128

Echo-Request-Schema
0 Type Code Prüfsumme
32 Identifikation Sequenznummer
Daten

Mit einem Echo Request wird um eine Antwort gebeten.

  • Ein Echo Request ist nichts anderes als ein simpler Ping.
  • Das Datenfeld kann mit Daten vergrößert werden, um größere Pakete zu produzieren.
  • So kann man zum Beispiel die MTU ermitteln.

Jedes System muss gemäß RFC auf Echo Requests reagieren und mit Echo Replies antworten.

  • Auch sollte jedes System eine Anwendung zum Versenden und Empfangen von Echo Request/Replies besitzen.
  • Hiervon wird in der Praxis jedoch oft abgewichen, so blockiert beispielsweise die Windows-Firewall standardmäßig ICMPv6-Echo-Request-Anfragen.

Empfangene Echo Request können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen.

Echo Reply – Type 129

Echo-Reply-Schema
0 Type Code Prüfsumme
32 Identifikation Sequenznummer
Daten

Auf eine Echo-Request-Nachricht muss mit einem Echo Reply geantwortet werden.

  • Das Paket ist bis auf das Typenfeld dasselbe. Echo-Reply-Nachrichten sollen nur an Unicast-Adressen verschickt werden.

Anhand der Identifikation und der Sequenznummer wird der Empfänger die Antworten zu seinen Anfragen zuordnen können.

Empfangene Echo-Reply-Nachrichten müssen an die Anwendung weitergereicht werden, die den zugehörigen Echo Request versendet hat.

  • An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden.

Multicast Listener Discovery – Type 130

MLD ist die Implementation von IGMP (IPv4) in IPv6.

  • Es wird also genutzt, um Multicast-Abonnements zu verwalten.
  • Dabei entspricht MLDv1 IGMPv2 und MLDv2 IGMPv3.
  • Bei den jeweils neueren Versionen lässt sich bestimmen, welche Quell-Adressen für Multicast-Streams akzeptabel sind.), Windows seit 2006 (Vista), FreeBSD seit 2009 (8.0)


Anhang

Siehe auch

Dokumentation
RFC
  1. RFC 4861 – "Neighbor Discovery for IP Version 6 (IPv6)"
  2. RFC 4443 – "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6)" Specification
  3. RFC 3122 – "Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification"
  4. IANA ICMP Parameters – vollständige Liste der ICMPv6-Typen und -Codes
  5. RFC 4890 – "Recommendations for Filtering ICMPv6 Messages in Firewalls"
  6. RFC 7112 – "Implications of Oversized IPv6 Header Chains"
  7. RFC 8200 – "Internet Protocol, Version 6 (IPv6) Specification" (löst RFC 2460 ab)
  8. https://tools.ietf.org/html/rfc4604
Links
Projekt
Weblinks
  1. https://de.wikipedia.org/wiki/ICMPv6
  2. https://lwn.net/Articles/29489/

TMP

IPv6 ICMPv6 ICMPv6 - Bedeutung

Internet Control Message Protocol for the Internet Protocol Version 6 (ICMPv6)
● ist die mit IPv6 zusammen verwendete Version des Internet Control Message Protocol
Meldungen
● Es dient, wie ICMPv4 bei IPv4, in Netzwerken zum Austausch von Fehler- und
Informationsmeldungen
NDP
● Zusätzlich findet es im Neighbor Discovery Protocol, dem Ersatz des Address Resolution Protocol,
Verwendung.
Bedeutung
● Im Gegensatz zum ICMP bei IPv4 ist ICMPv6 zwingend für den Betrieb von IPv6 nötig
● Ein generelles Blockieren von ICMPv6 auf der Firewall führt dazu, dass IPv6 nicht funktioniert
(vgl. RFC 4890)
Transport
● ICMPv6-Nachrichten werden vor dem Versenden in IPv6-Pakete eingepackt und so verschickt.
– Auch wenn ICMPv6 auf derselben Netzwerkschicht ist wie IPv6
Protokoll-Nummer
● Als Protokoll-Nummer wird 58 ins Next-Header-Feld des IPv6-Headers eingefügt

IPv6 - ICMPv6 Dirk Wagner Berlin 2 ICMPv6 im Protokollstapel



IPv6 - ICMPv6 Dirk Wagner Berlin 3 Erweiterte ICMP-Funktionalität

Unverzichtbar
● ICMPv6 (Protokolltyp 58) stellt für das Funktionieren von IPv6 unverzichtbare Funktionen zur
Verfügung.
Firewalls
● Das Verbieten aller ICMPv6-Pakete in einem IPv6-Netzwerk durch Filter ist daher im Normalfall
nicht durchführbar.
ARP und NDP
● Insbesondere wird das Address Resolution Protocol (ARP) durch das Neighbor Discovery
Protocol (NDP) ersetzt, welches auf ICMPv6 basiert.
● NDP macht hierbei intensiv Gebrauch von Link-Local-Unicast-Adressen und Multicast
● das von jedem Host beherrscht werden muss
Default-Routen
● Im Rahmen des NDP werden auch die automatische Adressvergabe und die automatische
Zuordnung einer oder mehrerer Default-Routen über ICMPv6 abgewickelt, so stellt es die
meisten Funktionen zur IPv6-Autokonfiguration zur Verfügung
● NDP kann auf die Möglichkeit weiterer Konfiguration durch DHCPv6 verweisen, welches UDP-
Pakete benutzt.


IPv6 - ICMPv6 Dirk Wagner Berlin 4 Erweiterte ICMP-Funktionalität

Fragmentierung
● Fragmentierung überlanger IPv6-Pakete erfolgt nicht durch die Router
– Anders als bei IPv4
● Absender werden mit Hilfe von ICMPv6-Nachrichten aufgefordert, kleinere Pakete zu schicken
– unter Zuhilfenahme des Fragment Extension Headers
Path MTU Discovery
● Ein IPv6-Host, bzw. eine Anwendung sollte vor dem Versenden einer großen Anzahl von IPv6-
Paketen eine Path MTU Discovery gemäß RFC 1981 durchführen
– um Pakete mit maximal möglicher Größe verschicken zu können



IPv6 - ICMPv6 Dirk Wagner Berlin 5 ICMPv6-Header

Type
● Das Feld Type gibt die Klasse der ICMP-Nachricht an
Code
● welche mit dem Feld Code genauer spezifiziert werden kann.
Prüfsumme
● Die Prüfsumme wird zum Prüfen der Gültigkeit des ICMPv6-Pakets benutzt.
Inhalt
● Der restliche Inhalt der ICMP-Nachricht wird durch den jeweiligen Typ bestimmt
● Bei Fehlernachrichten wird nach den möglichen zusätzlichen Feldern immer noch so viel wie
möglich vom fehlerverursachenden Paket angehängt.



IPv6 - ICMPv6 Dirk Wagner Berlin 6 ICMPv6-Typen

Nachrichten-Typen werden in zwei Gruppen unterteilt

Fehlernachrichten
● Die ersten 128 Typen (0–127) mit dem höchstwertigen Bit (engl. most significant bit) auf 0
Informationsnachrichten
● Die zweiten 128 Typen (128–255), mit dem höchstwertigem Bit auf 1



IPv6 - ICMPv6 Dirk Wagner Berlin 7 Fehlernachrichten

Type Beschreibung RFC
1 Destination Unreachable RFC 4443
2 Packet Too Big RFC 4443
3 Time Exceeded RFC 4443
4 Parameter Problem RFC 4443
100 Private experimentation
101 Private experimentation



IPv6 - ICMPv6 Dirk Wagner Berlin 8 Informationsnachrichten

Type Beschreibung RFC
128 Echo Request RFC 4443
129 Echo Reply RFC 4443
130 Multicast Listener Query RFC 2710 und RFC 3810
131 Version 1 Multicast Listener Report RFC 2710
132 Multicast Listener Done RFC 2710
133 Router Solicitation RFC 4861
134 Router Advertisement RFC 4861
135 Neighbor Solicitation RFC 4861
136 Neighbor Advertisement RFC 4861
137 Redirect RFC 4861
138 Router Renumbering
139 ICMP Node Information Query RFC 4620
140 ICMP Node Information Response RFC 4620
141 Inverse Neighbor Discovery Solicitation Message RFC 3122
142 Inverse Neighbor Discovery Advertisement Message RFC 3122
143 Version 2 Multicast Listener Report RFC 3810


IPv6 - ICMPv6 Dirk Wagner Berlin 9 Informationsnachrichten

Type Beschreibung RFC
144 Home Agent Address Discovery Request Message RFC 3775
145 Home Agent Address Discovery Reply Message RFC 3775
146 Mobile Prefix Solicitation RFC 3775
147 Mobile Prefix Advertisement RFC 3775
148 Certification Path Solicitation Message RFC 3971
149 Certification Path Advertisement Message RFC 3971
150 ICMP messages utilized by experimental mobility protocols such as RFC 4065
Seamoby
151 Multicast Router Advertisement RFC 4286
152 Multicast Router Solicitation RFC 4286
153 Multicast Router Termination RFC 4286
200 Private experimentation
201 Private experimentation
255 Reserved for expansion of ICMPv6 informational messages



IPv6 - ICMPv6 Dirk Wagner Berlin 10 Prüfsumme

Die Prüfsumme (engl. checksum) eines ICMPv6-Pakets
● ist ein 16-Bit-Einerkomplement der Summe des Einerkomplements der gesamten ICMPv6-
Nachricht.
– 'Einerkomplement' ist eine arithmetische Operation, bei der alle Bit invertiert werden (arithmetische Nicht-
Verknüpfung)
– Aus 0 wird 1 und umgekehrt
– Siehe: https://de.wikipedia.org/wiki/Einerkomplement
Pseudoheader
● Zusätzlich zur Nachricht wird noch ein IPv6-Pseudoheader angehängt
– Neuerungen gegenüber ICMP, wo die Prüfsumme nur über den ICMP-Header berechnet wurde
● Zur Berechnung der Prüfsumme wird das Prüfsummenfeld auf 0 gesetzt.
● Pseudoheader zur Berechnung der Prüfsumme:



IPv6 - ICMPv6 Dirk Wagner Berlin 11 ICMPv6 - Verarbeitung

Regeln für die Verarbeitung von ICMPv6-Nachrichten

Unbekannte ICMPv6 - Fehlernachrichten
● müssen an die darüber liegende Netzwerkschicht weitergereicht werden
Unbekannte ICMPv6 - Informationsnachrichten
● müssen kommentarlos verworfen werden
Jeder Fehlernachricht
● wird am Ende so viel wie möglich des fehlerverursachenden Pakets angehängt
Protokollnummer zum Weiterreichen
● von unbekannten Fehlernachrichten wird aus dem angehängten Originalpaket entnommen
Pakete auf die keine Fehlernachrichten versandt werden
● Fehlernachrichten
● Pakete an Multicast-, Link-Level-Multicast- oder Link-Level-Broadcast-Adressen mit folgenden
Ausnahmen:
– Packet-Too-Big-Nachrichten
– Parameter-Problem-Nachrichten mit Code 2 – unbekannte IPv6-Option
● Das Netz darf nicht mit ICMPv6 - Fehlernachrichten geflutet werden

IPv6 - ICMPv6 Dirk Wagner Berlin 12 ICMP-Standard-Typen

Destination Unreachable – Type 1

Destination – Unreachable - Nachrichten sollten vom Router erzeugt werden, wenn ein
Paket nicht ausgeliefert werden konnte.
● Wenn das Paket wegen Überlastung fallen gelassen wurde, muss keine Destination Unreachable
versandt werden.
Code 0
● fehlende Route
Code 1
● administrativ verboten (Firewall)
Code 3
● Router kann IPv6-Adresse nicht auflösen, oder Problem mit dem Link
Code 4
● Zielhost hat für ein UDP-Paket keinen Listener
Wenn ein Destination Unreachable empfangen wird, muss es der darüberliegenden
Schicht weitergereicht werden.

IPv6 - ICMPv6 Dirk Wagner Berlin 13 ICMP-Standard-Typen

Packet Too Big – Type 2

● muss vom Router erzeugt werden, wenn ein Paket nicht weitergeleitet werden kann, weil es
größer ist als die maximale MTU des Links, über den es versendet werden soll.
● Packet-Too-Big-Nachrichten werden vom Path MTU Discovery dazu gebraucht, um die
pfadabhängige MTU zu ermitteln.
Code
● sollte vom Sender auf 0 gesetzt und vom Empfänger ignoriert werden
Wenn ein Packet Too Big empfangen wird, muss es dem darüber liegenden Layer
weitergereicht werden.



IPv6 - ICMPv6 Dirk Wagner Berlin 14 ICMP-Standard-Typen

Time Exceeded – Type 3

Code 0
● Wenn ein Router ein Paket mit einem Hop-Limit von 0 erhält, oder sie auf 0 verkleinert, muss er
das Paket verwerfen und ein Time Exceeded mit Code 0 versenden.
● Das zeigt entweder eine Endlosschleife im Routing an oder ein zu kleines anfängliches Hop-
Limit.
Code 1
● Wenn von einer fragmentierten Nachricht nicht alle Fragmente innerhalb einer gewissen Zeit
ankommen, wird das Paket verworfen und es muss ein Time Exceeded mit Code 1 versendet
werden.



IPv6 - ICMPv6 Dirk Wagner Berlin 15 ICMP-Standard-Typen

Parameter Problem – Type 4

● Wenn ein Host beim Verarbeiten eines IPv6-Pakets ein Problem in einem Feld feststellt und
nicht mit der Verarbeitung weiterfahren kann, muss er das Paket verwerfen und eine Parameter-
Problem-Nachricht verschicken.
Code
● Mit dem Code wird dabei die Art des Problems genauer beschrieben.
0 Fehlerhaftes Header-Feld gefunden
1 Unbekannter Next-Header-Typ gefunden
2 Unbekannte IPv6-Option
Pointer
● Der Pointer zeigt dabei auf die Stelle im Paket, an der das Problem aufgetreten ist.



IPv6 - ICMPv6 Dirk Wagner Berlin 16 ICMP-Standard-Typen

Echo Request – Type 128

Mit einem Echo Request wird um eine Antwort gebeten
● Ein Echo Request ist nichts anderes als ein simpler Ping
Das Datenfeld
● kann mit Daten vergrößert werden, um größere Pakete zu produzieren
● So kann man zum Beispiel die MTU ermitteln.
Jedes System muss auf Echo Requests reagieren und mit Echo Replies antworten.
● Auch sollte jedes System eine Anwendung zum Versenden und Empfangen von Echo
Request/Replies besitzen.
Empfangene Echo Request
● können an Anwendungen weitergeleitet werden, die auf ICMP-Nachrichten horchen



IPv6 - ICMPv6 Dirk Wagner Berlin 17 ICMP-Standard-Typen

Echo Reply – Type 129

Auf eine Echo-Request-Nachricht muss mit einem Echo Reply geantwortet werden
● Das Paket ist bis auf das Typenfeld dasselbe.
Echo-Reply-Nachrichten sollen nur an Unicast-Adressen verschickt werden
Identifikation und der Sequenznummer
● Anhand der Identifikation und der Sequenznummer wird der Empfänger die Antworten zu seinen
Anfragen zuordnen können
Empfangene Echo-Reply-Nachrichten
● müssen an die Anwendung weitergereicht werden, die den zugehörigen Echo Request
versendet hat.
● An die restlichen auf ICMP horchende Anwendungen kann es weitergereicht werden



IPv6 - ICMPv6 Dirk Wagner Berlin 18 ICMP-Standard-Typen

Multicast Listener Discovery – Type 130

MLD ist die Implementation von IGMP (IPv4) in IPv6
● Es wird genutzt um Multicast Abonnements zu verwalten
MLDv1 IGMPv2 entsprechen MLDv2 IGMPv3
● Bei den jeweils neueren Versionen lässt sich bestimmen, welche Quell-Adressen für Multicast-
Steams akzeptabel sind
Unterstützung in Betriebsystemen
● Linux unterstützt es seit 2003 (2.5.68), Windows seit 2006 (Vista), FreeBSD seit 2009 (8.0)



IPv6 - ICMPv6 Dirk Wagner Berlin 19 Weblinks

RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
● https://tools.ietf.org/html/rfc4861
RFC 4443 – Internet Control Message Protocol (ICMPv6) for the Internet Protocol
Version 6 (IPv6) Specification
● https://tools.ietf.org/html/rfc4443
RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
Specification
● https://tools.ietf.org/html/rfc3122
IANA ICMP Parameters – vollständige Liste der ICMPv6-Typen und -Codes
● http://www.iana.org/assignments/icmpv6-parameters
RFC 4890 – Recommendations for Filtering ICMPv6 Messages in Firewalls
● https://tools.ietf.org/html/rfc4890



IPv6 - ICMPv6 Dirk Wagner Berlin 20

IPv6

Neighbor Discovery Protocol Neighbor Discovery Protocol (NDP)

Neighbor Discovery Protocol (NDP)

● Ersatz des Address Resolution Protocol (ARP) von IPv4 für IPv6


Verwendung

NDP wird von den am IPv6-Netzwerk beteiligten Knoten benutzt
● Link-Layer-Adresse von anderen Knoten ausfindig machen
– die am selben Netzwerk angeschlossen sind
● Aktualisieren zwischengespeicherter Adressen
Router finden, der Pakete weiterleiten kann
● Für alle nicht am selben Netzwerk hängenden Knoten



IPv6 - ICMPv6 Dirk Wagner Berlin 22 Neighbor Discovery Protocol (NDP)

Funktionsweise In der Default Router List

● Für NDP muss der Knoten für jedes Interface ● werden alle Router verwaltet, die für das
folgende Informationen verwalten Interface bekannt sind. Die Einträge
verweisen auf Einträge im Neighbor Cache.
Im Neighbor Cache ● Zusätzlich haben sie ein Ablaufdatum,
● werden Adressen verwaltet, an die etwas gesendet sodass alte Router verschwinden und nur
wurde und die sich im selben Netzwerk befinden. die erhalten bleiben, die ihre Anwesenheit
Zu jedem Eintrag einer IPv6-Adresse steht ihre verkünden.
Link-Layer-Adresse.
● Auch weitere Informationen werden hier verwaltet, NDP ICMPv6-Typen
wie zum Beispiel Pointer auf Pakete, die auf die
Adressauflösung warten, Informationen für die ● Die Informationen zum Erstellen dieser
Erreichbarkeitsprüfung oder ob es ein Router ist. Listen werden per ICMPv6 (Internet Control
Message Protocol V6) ausgetauscht. NDP
Im Destination Cache definiert zu diesem Zweck fünf ICMPv6-
● werden Adressen verwaltet, an die etwas gesendet Typen.
wurde. Für jeden Eintrag wird, per Link auf den
Neighbor Cache, gespeichert, welches der
nächste Hop ist, den ein Paket nehmen soll.
In der Prefix List
● werden die Präfixe verwaltet, 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.

IPv6 - ICMPv6 Dirk Wagner Berlin 23 Neighbor Discovery Protocol (NDP)

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.


IPv6 - ICMPv6 Dirk Wagner Berlin 24 Neighbor Discovery Protocol (NDP)

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.



IPv6 - ICMPv6 Dirk Wagner Berlin 25 Neighbor Discovery Protocol (NDP)

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 Adresse (z. B. Ethernet)
hören, sondern auch auf eine, auf seiner IPv6-Adresse beruhende, spezifische Multicast-
Adresse.
● 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.



IPv6 - ICMPv6 Dirk Wagner Berlin 26 Neighbor Discovery Protocol (NDP)

Beispiel
● Ein IPv6-Host in einem Ethernet-Netzwerk mit einer link-lokalen IPv6-Adresse
fe80::021d:e0ff:fe2a:4242 hört auf der Link-Layer-Ebene nicht nur auf die Adresse
00:1d:e0:2a:42:42, sondern auch auf die Ethernet-Multicast-Adresse 33:33:ff:2a:42:42. 33:33 ist
dabei der Teil, der ein IPv6 Multicast-Paket kennzeichnet, ff:2a:42:42 identifiziert die eigentliche
Gruppe.
● Das Multicast-Ziel für ein Neighbor-Solicitation-Paket auf IPv6-Ebene ist dann ff02::1:ff2a:4242.



IPv6 - ICMPv6 Dirk Wagner Berlin 27 Neighbor Discovery Protocol (NDP)

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.



IPv6 - ICMPv6 Dirk Wagner Berlin 28 Neighbor Discovery Protocol (NDP)

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.



IPv6 - ICMPv6 Dirk Wagner Berlin 29 ICMPv6-Typen

Router Solicitation – Type 133

● Per Router Solicitation an die Router-Multicast-Adresse werden alle Router im selben Netz
aufgefordert, sich zu melden.
● Der Code dieser Nachricht ist immer 0.
● Das Feld „Reserviert“ muss vom Sender mit Nullen initialisiert werden und der Empfänger muss
es ignorieren.
● Die einzig mögliche Option ist die Link-Layer-Adresse des Senders.
● Um bei Protokollerweiterungen keine Probleme zu bekommen, müssen alle unbekannten
Optionen ignoriert werden.



IPv6 - ICMPv6 Dirk Wagner Berlin 30 ICMPv6-Typen

Router Advertisement – Type 134 Das Erreichbarkeits-Timeout

● ist ein 32-Bit-Integer, der angibt, wie viele
Per Router Advertisement Millisekunden ein Eintrag im Neighbor Cache
● verkünden Router ihre Anwesenheit im Netz nach dem Empfangen von Daten noch als
● Entweder auf Anfrage per Router Solicitation oder erreichbar gelten soll.
periodisch, um nicht vergessen zu werden.
Das Auflösungs-Timeout
Das Hop-Limit
● ist ein 32-Bit-Integer, der angibt, nach wie
● ist ein 8-Bit-Wert, der die vom Router vorgeschlagene
Standard-Hop-Limits enthält. vielen Millisekunden erneut ein Neighbor
Solicitation gesendet werden soll.
Ein gesetztes M-Bit
● sagt dem Knoten, dass er neben Autokonfiguration für die Gültige Optionen
IP-Adresse auch Stateful-Autokonfiguration verwenden ● sind die Link-Layer-Adresse des Senders, die
soll.
MTU des Routers und alle gültigen Präfixe.
Ein gesetztes O-Bit
● sagt dem Knoten, dass er neben Autokonfiguration für Um problemfreie Protokoll-erweiterungen zu
alle Nicht-IP-Adress-Informationen auch Stateful- ermöglichen, müssen alle unbekannten Optionen
Autokonfiguration verwenden soll. ignoriert werden.
Die Router-Lifetime
● ist ein 16-Bit-Integer, der angibt, wie viele Sekunden ein
Router in der Default Router List bleiben soll.
● Das Maximum sind 18,2 Stunden.
● Ein Wert von 0 besagt, dass der Router kein Default
Router ist und nicht in die Default Router List eingetragen
werden soll.

IPv6 - ICMPv6 Dirk Wagner Berlin 31 ICMPv6-Typen

Router Advertisement – Type 134



IPv6 - ICMPv6 Dirk Wagner Berlin 32 ICMPv6-Typen

Neighbor Solicitation – Type 135

Per Neighbor Solicitation
● (Nachbar Anfrage) an die Link-Layer-Multicast-
Adresse einer Ipv6-Adresse werden IPv6-
Adressen zu Link-Layer-Adressen aufgelöst.
● Ebenfalls wird so die Erreichbarkeit eines
Knotens geprüft.
Link-Layer-Multicast-Adresse
Zieladresse
● werden aus der Multicast-Adresse der
betreffenden IPv6-Adresse mittels Adress-
● IPv6-Adresse, die in eine Link-Layer-
Mapping berechnet Adresse aufgelöst werden soll
● Die letzten 3 Byte xx:yy:zz der Solicited-Node ● Es darf keine Multicast-Adresse
Multicast Adresse werden auf die letzten 3 Byte angegeben werden
der Link-Layer Adresse 33:33:FF:xx:yy:zz
gemappt
Einzig mögliche Option
Typ und Code ● Link-Layer-Adresse des Senders
● Type wird auf 135 gesetzt und der Code auf 0
Unbekannten Optionen müssen
Reserviertes Feld ignoriert werden
● muss vom Sender mit Nullen initialisiert und ● Um bei Protokollerweiterungen keine
vom Empfänger ignoriert werden Probleme zu bekommenv

IPv6 - ICMPv6 Dirk Wagner Berlin 33 ICMPv6-Typen

Neighbor Advertisement – Type 136

Mit einer Neighbor-Advertisement-
Nachricht
● wird auf Neighbor-Solicitation-Nachrichten
geantwortet.
Typ und Code
● Type wird auf 136 gesetzt und der Code auf 0
R-Bit Reserviertes Feld
● wird gesetzt, wenn der Knoten ein Router ist ● muss vom Sender mit Nullen initialisiert
und vom Empfänger ignoriert werden
S-Bit
● wird gesetzt, wenn das Neighbor Zieladresse
Advertisement aufgrund einer Unicast- ● Link-Layer-Adresse, die erfragt wurde
Neighbor-Solicitation-Nachricht gesendet wird
O-Bit Option
● bedeutet, dass der Eintrag im Neighbor Cache
● ist die Link-Layer-Adresse des Senders.
aktualisiert werden muss ● Unbekannten Optionen ignoriert werden,
um bei Protokollerweiterungen Probleme
zu vermeiden

IPv6 - ICMPv6 Dirk Wagner Berlin 34 ICMPv6-Typen

Redirect – Type 137
Per Redirect-Nachricht
● teilen Router mit, wenn es einen besseren ersten Hop für ein gewisses Ziel gibt.
Type und Code
● Der Typ wird auf 137 gesetzt und der Code auf 0.
Das reservierte Feld
● muss vom Sender mit Nullen initialisiert werden und vom Empfänger ignoriert
werden.
Die Hop-Adresse
● ist der zu bevorzugende Router für die Adresse.
Die Zieladresse
● ist die Adresse für die es einen besseren First-Hop gibt.


Die einzigen möglichen Optionen
● sind die Link-Layer-Adresse des Senders
und der Header des auslösenden
Paketes.
● Um bei Protokollerweiterungen keine
Probleme zu bekommen, müssen alle
unbekannten Optionen ignoriert werden.



IPv6 - ICMPv6 Dirk Wagner Berlin 35 Implementierung in Betriebssystemen

Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen aufzulösen

Unter Linux erhält man mit dem iproute2-Werkzeug Einsicht in den Neighbor Cache
ip -6 neigh
2001:470:1f0b:2f2:5cad:a77f:aaff:849 dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE
fe80::2a10:7bff:fe65:58a dev wlan0 lladdr 28:10:7b:65:ab:cd router REACHABLE
2001:470:1f0b:2f2::cafe dev wlan0 lladdr 00:11:25:32:10:ab REACHABLE



IPv6 - ICMPv6 Dirk Wagner Berlin 36 Implementierung in Betriebssystemen

Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen aufzulösen

Auf BSD-basierten Systemen hilft hierbei das Werkzeug ndp
● wobei die Optionen '-an' bedeuten, dass alle Hosts numerisch angezeigt werden sollen; hier bei FreeBSD 9
ndp -an
Neighbor Linklayer Address Netif Expire S Flags
2001:475:abcd:2f2:3189:67c1:b550:9400 c6:ab:27:56:b5:30 em0 14s R R
# <-- Rechner mit Privacy Extensions
2001:475:abcd:2f2:211:25ff:fe32:10ab 00:11:25:32:10:ab em0 permanent R
fe80::211:25ff:fe32:10ab%em0 00:11:25:32:10:ab em0 permanent R
2001:475:abcd:2f2::cafe 00:11:25:32:10:ab em0 permanent R
# <-- Alias-Adresse
fe80::2a10:7bff:fe65:58a%em0 28:10:7b:65:ab:cd em0 23h59m25s S R
# <-- Router
2001:475:abcd:2f2:5cad:a77f:aaff:849 00:11:25:32:10:ab em0 permanent R
fe80::c6ab:27ff:fe56:b530%em0 c6:ab:27:56:b5:30 em0 24s R R
# <-- link-local address


Hierbei ist insbesondere die Spalte Expire zu beachten
● legt fest, wann ein Namenseintrag als veraltet einzustufen ist
● Die Adressen des Rechners selbst sind dabei permanent, der Router liegt hier bei fast 24 Stunden und die Nachbargeräte im
Netzwerk liegen zumeist bei unter einer Minute, bis der Eintrag wieder aufgefrischt wird.

IPv6 - ICMPv6 Dirk Wagner Berlin 37 Implementierung in Betriebssystemen

Alle IPv6-fähigen Betriebssysteme sind in der Lage mit NDP Adressen aufzulösen

Unter Windows lautet der Befehl
netsh interface ipv6 show neighbors level=verbose



IPv6 - ICMPv6 Dirk Wagner Berlin 38 Weblinks

RFC 4861 – Neighbor Discovery for IP Version 6 (IPv6)
● https://tools.ietf.org/html/rfc4861
RFC 3122 – Extensions to IPv6 Neighbor Discovery for Inverse Discovery
Specification
● https://tools.ietf.org/html/rfc3122



IPv6 - ICMPv6 Dirk Wagner Berlin 39

IPv6

Autokonfiguration Autokonfiguration

Stateless Address Autoconfiguration

● (SLAAC, zustandslose Adressenautokonfiguration, spezifiziert in RFC 4862)
Ein Host kann vollautomatisch eine funktionsfähige Internetverbindung aufbauen
● Dazu kommuniziert er mit den für sein Netzwerksegment zuständigen Routern
● um die notwendige Konfiguration zu ermitteln



IPv6 - Einführung Dirk Wagner Berlin 41 IPv6 Autokonfiguration: Plug & Play



IPv6 - ICMPv6 Dirk Wagner Berlin 42 Autokonfiguration Ablauf

link-lokale Adresse
● Zur initialen Kommunikation mit dem Router weist sich der Host eine link-lokale Adresse zu, die im Falle
einer Ethernet-Schnittstelle etwa aus deren Hardware-Adresse berechnet werden kann.
Router Solicitation
● Damit kann ein Gerät sich mittels des Neighbor Discovery Protocols (NDP, siehe auch ICMPv6-
Funktionalität) auf die Suche nach den Routern in seinem Netzwerksegment machen.
● Dies geschieht durch eine Anfrage an die Multicast-Adresse ff02::2, über die alle Router eines Segments
erreichbar sind (Router Solicitation).
● Ein Router versendet auf eine solche Anfrage hin Information zu verfügbaren Präfixen, also Information
über die Adressbereiche, aus denen ein Gerät sich selbst Unicast-Adressen zuweisen darf.
Router Advertisements
● Die Pakete, die diese Informationen tragen, werden Router Advertisements genannt. Sie besitzen
ICMPv6-Typ 134 (0x86) und besitzen Informationen über die Lifetime, die MTU und das Präfix des
Netzwerks.
● An einen solchen Präfix hängt der Host den auch für die link-lokale Adresse verwendeten Interface-
Identifier an.
Duplicate Address Detection
● Um die doppelte Vergabe einer Adresse zu verhindern, ist der Mechanismus Duplicate Address Detection
(DAD – Erkennung doppelt vergebener Adressen) vorgesehen.
● Ein Gerät darf bei der Autokonfiguration nur unvergebene Adressen auswählen. Der DAD-Vorgang läuft
ebenfalls ohne Benutzereingriff via NDP ab.

IPv6 - ICMPv6 Dirk Wagner Berlin 43 Autokonfiguration Gültigkeitsangaben

Valid Lifetime und Preferred Lifetime
● Router können bei der Vergabe von Adresspräfixen begrenzte Gültigkeitszeiten mitgeben: Valid
Lifetime und Preferred Lifetime.
● Innerhalb der Valid Lifetime darf der angegebene Präfix zur Kommunikation verwendet werden
● innerhalb der Preferred Lifetime soll dieser Präfix einem anderen, dessen Valid Lifetime schon
abgelaufen ist, vorgezogen werden.
Router Advertisements
● Router verschicken regelmäßig Router Advertisements an alle Hosts in einem Netzsegment, für
das sie zuständig sind, mittels derer die Präfix-Gültigkeitszeiten aufgefrischt werden; durch
Änderung der Advertisements können Hosts umnummeriert werden.
● Sind die Router Advertisements nicht über IPsec authentifiziert, ist die Herabsetzung der
Gültigkeitszeit eines einem Host bereits bekannten Präfixes auf unter zwei Stunden jedoch nicht
möglich.



IPv6 - ICMPv6 Dirk Wagner Berlin 44

IPv6 Autokonfiguration: Neighbor Discovery



IPv6 - ICMPv6 Dirk Wagner Berlin 45 IPv6 Autokonfiguration

Neuer Host konfiguriert lokale Adresse
Lokale Adresse wird per Neighbor-Discovery-Protokoll verifiziert
Host sendet dann Router Solicitation Message mit lokaler Adresse
Router antwortet mit Router Advertisement Message:
● Enthält Informationen zu Adreß-Präfix und globale Adresse des neuen Hosts
(stateful autoconfiguration oder stateless autoconfiguration)



Router Solicitation
Router Advertisement
Router Neuer Host



IPv6 - ICMPv6 Dirk Wagner Berlin 46

IPv6 Autokonfiguration: Neighbor Discovery



IPv6 - ICMPv6 Dirk Wagner Berlin 47

IPv6 Autokonfiguration: Neighbor Discovery



IPv6 - ICMPv6 Dirk Wagner Berlin 48

IPv6 Autokonfiguration: Neighbor Discovery



IPv6 - ICMPv6 Dirk Wagner Berlin 49 Autokonfiguration und DHCPv6

Stateful Address Configuration
● Die IPv6-Autokonfiguration unterscheidet sich konzeptionell von DHCP beziehungsweise
DHCPv6.
– Bei der Adressvergabe durch DHCPv6 wird von „Stateful Address Configuration“ gesprochen sinngemäß:
Adressvergabe, über die Buch geführt wird, etwa durch einen DHCP-Server
– definiert in RFC 3315
● Autokonfiguration ist eine „Stateless Address (Auto)Configuration“
– Geräte weisen sich selbst eine Adresse zu
– über diese Vergabe wird nicht Buch geführt
Grenzen der Autokonfiguration
● Mittels der Autokonfiguration können an Clients keine Informationen zu Host-, Domainnamen,
DNS, NTP-Server etc. mitgeteilt werden, sofern diese nicht spezifische Erweiterungen von NDP
unterstützen.
Stateless DHCPv6
● Als Alternative hat sich der zusätzliche Einsatz eines DHCPv6-Servers etabliert.
● Dieser liefert die gewünschten Zusatzinformationen, kümmert sich dabei aber nicht um die
Adressvergabe.
● Man spricht in diesem Fall von Stateless DHCPv6 (vgl. RFC 3736).
● Dem Client kann mittels des Managed-Flags in der Antwort auf eine NDP-Router-Solicitation
angezeigt werden, dass er eine DHCPv6-Anfrage stellen und somit die Zusatzinformationen
beziehen soll.

IPv6 - ICMPv6 Dirk Wagner Berlin 50

IPv6 Autokonfiguration: DHCPv6



IPv6 - ICMPv6 Dirk Wagner Berlin 51

IPv6 Autokonfiguration: DHCPv6



IPv6 - ICMPv6 Dirk Wagner Berlin 52