Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

ICMPv6

aus Wikipedia, der freien Enzyklopädie
ICMPv6 (Internet Control Message Protocol Version 6)
Familie:Internetprotokollfamilie
Einsatzgebiet:Obligatorischer Zusatz zuIPv6, Fehlermeldungen, Diagnose, Autoconfiguration, Routing
Internet-Protokolle imTCP/IP-Protokollstapel
InternetICMPv6
IPv6
NetzzugangEthernetToken
Bus
IEEE
802.11a/b/g/n
FDDI
Standards:
  • RFC 8200 (2017)[1]
  • RFC 4443 (2006)[2]

DasInternet Control Message Protocol for the Internet Protocol Version 6 (ICMPv6) ist die mitIPv6 zusammen verwendete Version desInternet Control Message Protocol. Es dient, wie schon beiIPv4, inNetzwerken zum Austausch von Fehler- und Informationsmeldungen. Zusätzlich findet es aber noch imNeighbor Discovery Protocol, dem Ersatz desAddress Resolution Protocol, Verwendung.

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 (RFC 4890[3]).

ICMPv6 dient als Hilfsprotokoll für IPv6, ist ebenfalls in derVermittlungsschicht (OSI-Schicht 3) angesiedelt und nutzt das IPv6-Protokoll zum Versand von ICMP-Nachrichten. AlsProtokoll-Nummer wird dabei 58 ins Next-Header-Feld des IPv6-Headers eingefügt.

ICMPv6-Header

[Bearbeiten |Quelltext bearbeiten]
ICMPv6 Header
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
ICMPv6-Nachricht …

Das FeldType gibt die Klasse der ICMP-Nachricht an, welche mit dem FeldCode 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-Typen

[Bearbeiten |Quelltext bearbeiten]

Die Nachrichten-Typen werden in zwei Gruppen unterteilt. Die ersten 128 Typen (0–127) mit demhö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
TypeBeschreibungRFC
1Destination UnreachableRFC 4443[2]
2Packet Too BigRFC 4443[2]
3Time ExceededRFC 4443[2]
4Parameter ProblemRFC 4443[2]
100Private experimentation
101Private experimentation
Informationsnachrichten
TypeBeschreibungRFC
128Echo RequestRFC 4443[2]
129Echo ReplyRFC 4443[2]
130Multicast Listener QueryRFC 2710[4] und RFC 3810[5]
131Version 1 Multicast Listener ReportRFC 2710[4]
132Multicast Listener DoneRFC 2710[4]
133Router SolicitationRFC 4861[6]
134Router AdvertisementRFC 4861[6]
135Neighbor SolicitationRFC 4861[6]
136Neighbor AdvertisementRFC 4861[6]
137RedirectRFC 4861[6]
138Router RenumberingRFC 2894[7]
139ICMP Node Information QueryRFC 4620[8]
140ICMP Node Information ResponseRFC 4620[8]
141Inverse Neighbor Discovery Solicitation MessageRFC 3122[9]
142Inverse Neighbor Discovery Advertisement MessageRFC 3122[9]
143Version 2 Multicast Listener ReportRFC 3810[5]
144Home Agent Address Discovery Request MessageRFC 3775[10]
145Home Agent Address Discovery Reply MessageRFC 3775[10]
146Mobile Prefix SolicitationRFC 3775[10]
147Mobile Prefix AdvertisementRFC 3775[10]
148Certification Path Solicitation MessageRFC 3971[11]
149Certification Path Advertisement MessageRFC 3971[11]
150ICMP messages utilized by experimental mobility protocols such as SeamobyRFC 4065[12]
151Multicast Router AdvertisementRFC 4286[13]
152Multicast Router SolicitationRFC 4286[13]
153Multicast Router TerminationRFC 4286[13]
155RPL Control MessageRFC 6550[14]
200Private experimentation
201Private experimentation
255Reserved for expansion of ICMPv6 informational messages

Prüfsumme

[Bearbeiten |Quelltext bearbeiten]
Prüfsummen-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0IPv6-Absender-Adresse
32
64
96
128IPv6-Ziel-Adresse
160
192
224
256IPv6-Nutzlast-Größe
288Checksumme 0Next Header 58

DiePrü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überICMP, wo die Prüfsumme nur über den ICMP-Header berechnet wurde.

ICMPv6-Verarbeitung

[Bearbeiten |Quelltext bearbeiten]

Für die Verarbeitung von ICMPv6-Nachrichten gelten folgende Regeln:

  • 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.

ICMP-Standard-Typen

[Bearbeiten |Quelltext bearbeiten]

Destination Unreachable – Type 1

[Bearbeiten |Quelltext bearbeiten]
Destination-Unreachable-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32Unbenutzt
Fehlerhaftes Paket

Destination-Unreachable-Nachrichten sollten vomRouter erzeugt werden, wenn ein Paket nicht ausgeliefert werden konnte. Wenn das Paket wegen Überlastung fallen gelassen wurde, muss keineDestination 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 einUDP-Paket keinen Listener hat, sollte er einDestination Unreachable mit Code 4 versenden.

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

Packet Too Big – Type 2

[Bearbeiten |Quelltext bearbeiten]
Packet-Too-Big-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32MTU
Fehlerhaftes Paket

EinePacket-Too-Big-Nachricht muss vom Router erzeugt werden, wenn ein Paket nicht weitergeleitet werden kann, weil es größer ist als die maximaleMTU des Links, über den es versendet werden soll.Packet-Too-Big-Nachrichten werden vomPath 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 einPacket Too Big empfangen wird, muss es dem darüberliegenden Layer weitergereicht werden.

Time Exceeded – Type 3

[Bearbeiten |Quelltext bearbeiten]
Time-Exceeded-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32Unbenutzt
Fehlerhaftes Paket

Wenn ein Router ein Paket mit einemHop-Limit von 0 erhält, oder denTime-to-Live-Wert auf 0 reduziert, muss er das Paket verwerfen und einTime 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 einTime Exceeded mit Code 1 versendet werden.

Parameter Problem – Type 4

[Bearbeiten |Quelltext bearbeiten]
Parameter-Problem-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32Pointer
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 eineParameter-Problem-Nachricht verschicken.

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

0Fehlerhaftes Header-Feld gefunden
1Unbekannter Next-Header-Typ gefunden
2Unbekannte IPv6-Option
3Unvollstä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

[Bearbeiten |Quelltext bearbeiten]
Echo-Request-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32IdentifikationSequenznummer
Daten

Mit einemEcho Request wird um eine Antwort gebeten. EinEcho Request ist nichts anderes als ein simplerPing. Das Datenfeld kann mit Daten vergrößert werden, um größere Pakete zu produzieren. So kann man zum Beispiel dieMTU ermitteln.

Jedes System muss gemäß RFC aufEcho Requests reagieren und mitEcho Replies antworten. Auch sollte jedes System eine Anwendung zum Versenden und Empfangen vonEcho Request/Replies besitzen. Hiervon wird in der Praxis jedoch oft abgewichen, so blockiert beispielsweise dieWindows-Firewall standardmäßig ICMPv6-Echo-Request-Anfragen.[15]

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

Echo Reply – Type 129

[Bearbeiten |Quelltext bearbeiten]
Echo-Reply-Schema
+Bits 0–7Bits 8–15Bits 16–23Bits 24–31
0TypeCodePrüfsumme
32IdentifikationSequenznummer
Daten

Auf eineEcho-Request-Nachricht muss mit einemEcho Reply geantwortet werden. Das Paket ist bis auf das Typenfeld dasselbe.Echo-Reply-Nachrichten sollen nur anUnicast-Adressen verschickt werden.

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

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

Multicast Listener Discovery – Type 130

[Bearbeiten |Quelltext bearbeiten]

MLD ist die Implementation vonIGMP (IPv4) in IPv6. Es wird also genutzt, umMulticast-Abonnements zu verwalten. Dabei entsprichtMLDv1 IGMPv2 undMLDv2 IGMPv3. Bei den jeweils neueren Versionen lässt sich bestimmen, welche Quell-Adressen für Multicast-Streams akzeptabel sind.[16]Linux unterstützt es seit 2003 (2.5.68),Windows seit 2006 (Vista),FreeBSD seit 2009 (8.0).[17][18][19]

Weblinks

[Bearbeiten |Quelltext bearbeiten]
  • RFC:4861 –Neighbor Discovery for IP Version 6 (IPv6). September 2007 (englisch).
  • RFC:4443 –Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6). März 2006 (Specification, englisch).
  • RFC:3122 –Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification. Juni 2001 (englisch).
  • IANA ICMP Parameters – vollständige Liste der ICMPv6-Typen und -Codes (englisch).
  • RFC:4890 –Recommendations for Filtering ICMPv6 Messages in Firewalls. Mai 2007 (englisch).
  • RFC:7112 –Implications of Oversized IPv6 Header Chains. Januar 2014 (englisch).
  • RFC:8200 –Internet Protocol, Version 6 (IPv6) Specification. Juli 2017 (löstRFC 2460 ab, englisch).

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. RFC:8200 –Internet Protocol, Version 6 (IPv6) Specification. Juli 2017 (löstRFC 2460 ab, englisch).
  2. abcdefgRFC:4443 –Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6). März 2006 (Specification, englisch).
  3. RFC:4890 –Recommendations for Filtering ICMPv6 Messages in Firewalls. Mai 2007 (englisch).
  4. abcRFC:2710 –Multicast Listener Discovery (MLD) for IPv6. Oktober 1999 (englisch).
  5. abRFC:3810 –Multicast Listener Discovery Version 2 (MLDv2) for IPv6. Juni 2004 (englisch).
  6. abcdeRFC:4861 –Neighbor Discovery for IP Version 6 (IPv6). September 2007 (englisch).
  7. RFC:2894 –Router Renumbering for IPv6. Juni 2000 (englisch).
  8. abRFC:4620 –IPv6 Node Information Queries. August 2006 (englisch).
  9. abRFC:3122 –Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification. Juni 2001 (englisch).
  10. abcdRFC:3775 –Mobility Support in IPv6. Juni 2004 (englisch).
  11. abRFC:3971 –SEcure Neighbor Discovery (SEND). März 2005 (englisch).
  12. RFC:4065 –Instructions for Seamoby and Experimental Mobility Protocol IANA Allocations. Juli 2005 (englisch).
  13. abcRFC:4286 –Multicast Router Discovery. Dezember 2005 (englisch).
  14. RFC:6550 –RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. März 2012 (englisch).
  15. How to allow Pings (ICMP Echo requests) through Windows Firewall. In: thewindowsclub.com. Abgerufen am 10. Januar 2025 (englisch). 
  16. RFC:4604 –Using Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Proto for Source-Specific Multicast. August 2006 (englisch).
  17. Linus Torvalds: Linux 2.5.68. In: lwn.net. 19. April 2003, abgerufen am 2. August 2014 (englisch). 
  18. Steven White et al.: MLD and IGMP Using Windows Sockets. In: learn.microsoft.com. Microsoft, 7. Januar 2021, abgerufen am 10. Januar 2025 (englisch). 
  19. mld(4) – FreeBSD Kernel InterfacesManual
Abgerufen von „https://de.wikipedia.org/w/index.php?title=ICMPv6&oldid=257653388
Kategorien:

[8]ページ先頭

©2009-2026 Movatter.jp