IPv6/ICMP: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(40 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''ICMPv6''' - [[Internet Control Message Protocol]] für [[IPv6]]
'''IPv6/ICMP''' - ICMPv6 ([[Internet Control Message Protocol]] für [[IPv6]])


== Beschreibung ==
== Beschreibung ==
{| class="wikitable float"
{| class="wikitable float"
|-----
|-
! style="background:#C0C0FF;" colspan="2"| ICMPv6 (Internet Control Message Protocol Version 6)
! style="background:#C0C0FF;" colspan="2"| ICMPv6 (Internet Control Message Protocol Version 6)
|-----
|-
| align="left" | '''Familie'''
| align="left" | '''Familie'''
| align="left" | [[Internetprotokolle]]
| align="left" | [[Internetprotokolle]]
|-----
|-
| align="left" | '''Einsatzgebiet'''
| align="left" | '''Einsatzgebiet'''
| align="left" style="width:210px;"| Fehlermeldungen, Diagnose, Autoconfiguration, Routing
| align="left" style="width:210px;"| Fehlermeldungen, Diagnose, Autoconfiguration, Routing
|-----
|-
| align="center" colspan="2" |
| align="center" colspan="2" |
{| border="0" cellspacing="3"
{| border="0" cellspacing="3"
|+ '''Internet-Protokolle im [[TCP/IP-Referenzmodell|TCP/IP-Protokollstapel]]'''
|+ '''Internet-Protokolle im [[TCP/IP-Referenzmodell|TCP/IP-Protokollstapel]]'''
|-----
|-
| rowspan="2" align="center" bgcolor="#FFCC99" | '''Internet'''
| rowspan="2" align="center" bgcolor="#FFCC99" | '''Internet'''
| colspan="5" align="center" bgcolor="#9999FF" | '''ICMPv6'''
| colspan="5" align="center" bgcolor="#9999FF" | '''ICMPv6'''
|-----
|-
| colspan="5" align="center" bgcolor="#EEEEFF" | [[IPv6]]
| colspan="5" align="center" bgcolor="#EEEEFF" | [[IPv6]]
|-----
|-
| rowspan="2" align="center" bgcolor="#FFEEBB" | ''Netzzugang''
| rowspan="2" align="center" bgcolor="#FFEEBB" | ''Netzzugang''
| rowspan="2" align="center" bgcolor="#EEEEEE" | [[Ethernet]]
| rowspan="2" align="center" bgcolor="#EEEEEE" | [[Ethernet]]
Zeile 28: Zeile 28:
| rowspan="2" align="center" bgcolor="#EEEEEE" | …
| rowspan="2" align="center" bgcolor="#EEEEEE" | …
|}
|}
|-----
| align="left" | '''Standards'''
| align="left" |
[https://www.rfc-editor.org/rfc/rfc8200.html RFC 8200] <br> [https://www.rfc-editor.org/rfc/rfc4443 RFC 4443]
|}
|}


Zeile 38: Zeile 34:
* Zusätzlich findet es aber noch im [[Neighbor Discovery Protocol]], dem Ersatz des [[Address Resolution Protocol]], Verwendung
* Zusätzlich findet es aber noch im [[Neighbor Discovery Protocol]], dem Ersatz des [[Address Resolution Protocol]], Verwendung


; ICMPv6 zwingend notwendig
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 (vgl.&nbsp;RFC 4890)
* Ein generelles Blockieren von ICMPv6 auf der Firewall führt dazu, dass IPv6 nicht funktioniert (vgl.&nbsp;RFC 4890)
Zeile 45: Zeile 42:


== Header ==
== Header ==
{| class="wikitable float" cellpadding="2"
{| class="wikitable float small" cellpadding="2"
|+ ICMPv6 Header
|+ ICMPv6 Header
|- align="center"
|- align="center"
Zeile 56: Zeile 53:
| colspan="32" | ICMPv6-Nachricht …
| colspan="32" | ICMPv6-Nachricht …
|}
|}
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
Das Feld ''Type'' gibt die Klasse der ICMP-Nachricht an
* Der restliche Inhalt der ICMP-Nachricht wird durch den jeweiligen Typ bestimmt
* 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
* Bei Fehlernachrichten wird nach den möglichen zusätzlichen Feldern immer noch so viel wie möglich vom fehlerverursachenden Paket angehängt


=== Prüfsumme ===
=== Prüfsumme ===
{| class="wikitable float" cellpadding="2"
{| class="wikitable small float" cellpadding="2"
|+ Prüfsummen-Schema
|+ Prüfsummen-Schema
|-
|-
Zeile 113: Zeile 113:


== Nachrichten-Typen ==
== Nachrichten-Typen ==
; Die Nachrichten-Typen werden in zwei Gruppen unterteilt
{| class="wikitable options big"
{| class="wikitable sortable options big"
|-
|-
! Option !! Beschreibung
! Gruppe !! TType !! Beschreibung
|-
|-
| Die ersten 128 Typen (0–127) || mit dem [[Bitwertigkeit|höchstwertigen Bit]] (engl. ''most significant bit'') auf 0, sind Fehlernachrichten
| Fehlernachrichten || 0–127 || mit dem [[Bitwertigkeit|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
| Informationsnachrichten || 128–255 || mit dem höchstwertigen Bit auf 1, sind Informationsnachrichten
|}
|}


== Fehlernachrichten ==
== Fehlernachrichten ==
{| class="wikitable big"
{| class="wikitable big options col1center"
! class="hintergrundfarbe6"| Type
! class="hintergrundfarbe6"| Type
! class="hintergrundfarbe6"| Beschreibung
! class="hintergrundfarbe6"| Beschreibung
! class="hintergrundfarbe6"| RFC
! class="hintergrundfarbe6"| RFC
|-
|-
|1
|1 || [[#Destination Unreachable|Destination Unreachable]] ||[https://www.rfc-editor.org/rfc/4443 RFC 4443]
| [[#Destination Unreachable|Destination Unreachable]]
|[https://www.rfc-editor.org/rfc/4443 RFC 4443]
|-
|-
|2
|2 || [[#Packet Too Big|Packet Too Big]] ||[https://www.rfc-editor.org/rfc/4443 RFC 4443]
| [[#Packet Too Big|Packet Too Big]]
|[https://www.rfc-editor.org/rfc/4443 RFC 4443]
|-
|-
|3
|3 || [[#Time Exceeded|Time Exceeded]] ||[https://www.rfc-editor.org/rfc/4443 RFC 4443]
| [[#Time Exceeded|Time Exceeded]]
|[https://www.rfc-editor.org/rfc/4443 RFC 4443]
|-
|-
|4
|4 || [[#Parameter Problem|Parameter Problem]] ||[https://www.rfc-editor.org/rfc/4443 RFC 4443]
| [[#Parameter Problem|Parameter Problem]]
|[https://www.rfc-editor.org/rfc/4443 RFC 4443]
|}
|}


==== Destination Unreachable ====
==== Destination Unreachable ====
; Destination Unreachable - Type 1
 
{| class="wikitable float"cellpadding="2"
{| class="wikitable float small"
|+ Destination-Unreachable-Schema
|+ Destination-Unreachable-Schema
|- align="center"
|- align="center"
Zeile 162: Zeile 153:
| colspan="32" | Fehlerhaftes Paket
| colspan="32" | Fehlerhaftes Paket
|}
|}
 
; Destination Unreachable - Type 1
''Destination-Unreachable''-Nachrichten sollten vom Router erzeugt werden, wenn ein Paket nicht ausgeliefert werden konnte
''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 Überlastung fallen gelassen wurde, muss keine ''Destination Unreachable'' versandt werden
Zeile 174: Zeile 165:


==== Packet Too Big ====
==== Packet Too Big ====
; Packet Too Big - Type 2
{| class="wikitable float small"
{| class="wikitable float"  cellpadding="2"
|+ Packet-Too-Big-Schema
|+ Packet-Too-Big-Schema
|- align="center"
|- align="center"
Zeile 190: Zeile 180:
|}
|}


; Packet Too Big - Type 2
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 [[Maximum Transmission Unit|MTU]] des Links, über den es versendet werden soll. ''Packet-Too-Big''-Nachrichten werden vom [https://de.wikipedia.org/wiki/Path_MTU_Discovery Path MTU Discovery] gebraucht, um die pfadabhängige MTU zu ermitteln
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 [[Maximum Transmission Unit|MTU]] des Links, über den es versendet werden soll. ''Packet-Too-Big''-Nachrichten werden vom [https://de.wikipedia.org/wiki/Path_MTU_Discovery Path MTU Discovery] gebraucht, um die pfadabhängige MTU zu ermitteln


Zeile 197: Zeile 188:


==== Time Exceeded ====
==== Time Exceeded ====
; Time Exceeded - Type 3
{| class="wikitable float small"
{| class="wikitable float" cellpadding="2"
|+ Time-Exceeded-Schema
|+ Time-Exceeded-Schema
|- align="center"
|- align="center"
! class="hintergrundfarbe6" colspan="1"|0
! class="hintergrundfarbe6" colspan="1"|0
Zeile 214: Zeile 203:
|}
|}


; Time Exceeded - Type 3
Wenn ein Router ein Paket mit einem [[Hop (Netzwerktechnologie)|Hop]]-Limit von 0 erhält, oder den [[Time to Live|Time-to-Live]]-Wert auf 0 reduziert, muss er das Paket verwerfen und ein ''Time Exceeded'' mit Code 0 an den Absender versenden
Wenn ein Router ein Paket mit einem [[Hop (Netzwerktechnologie)|Hop]]-Limit von 0 erhält, oder den [[Time to Live|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
* Das zeigt entweder eine Endlosschleife im Routing an oder ein zu kleines anfängliches Hop-Limit
Zeile 220: Zeile 210:


==== Parameter Problem ====
==== Parameter Problem ====
; Parameter Problem - Type 4
{| class="wikitable float small"
{| class="wikitable float"  cellpadding="2"
|+ Parameter-Problem-Schema
|+ Parameter-Problem-Schema
|- align="center"
|- align="center"
Zeile 236: Zeile 225:
|}
|}


; 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
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
Mit dem Code wird dabei die Art des Problems genauer beschrieben


{| class="wikitable big options"
{| class="wikitable big options col1center"
| 0
| 0
| Fehlerhaftes Header-Feld gefunden
| Fehlerhaftes Header-Feld gefunden
Zeile 264: Zeile 254:
|128 || [[#Echo Request|Echo Request]] || [https://www.rfc-editor.org/rfc/4443 RFC 4443]
|128 || [[#Echo Request|Echo Request]] || [https://www.rfc-editor.org/rfc/4443 RFC 4443]
|-
|-
|129
|129 || [[#|Echo Reply|Echo Reply]] ||[https://www.rfc-editor.org/rfc/4443|RFC 4443]
|Echo Reply
|[https://www.rfc-editor.org/rfc/4443|RFC 4443]
|-
|-
|130
|130 || [[#Multicast Listener Query|Multicast Listener Query]] ||RFC 2710 und RFC 3810
|Multicast Listener Query
|RFC 2710 und RFC 3810
|-
|-
|131
|131 || Version 1 Multicast Listener Report |RFC 2710
|Version 1 Multicast Listener Report
|RFC 2710
|-
|-
|132
|132 || Multicast Listener Done ||RFC 2710
|Multicast Listener Done
|RFC 2710
|-
|-
|133
|133 || Router Solicitation || RFC 4861
|Router Solicitation
|RFC 4861
|-
|-
|134
|134 || Router Advertisement || RFC 4861
|Router Advertisement
|RFC 4861
|-
|-
|135
|135 || |Neighbor Solicitation ||RFC 4861
|Neighbor Solicitation
|RFC 4861
|-
|-
|136
|136 || Neighbor Advertisement ||RFC 4861
|Neighbor Advertisement
|RFC 4861
|-
|-
|137
|137 || Redirect || RFC 4861
|Redirect
|RFC 4861
|-
|-
|138
|138
Zeile 382: Zeile 354:


==== Echo Request ====
==== Echo Request ====
; Echo Request - Type 128
{| class="wikitable float small"
{| class="wikitable float" cellpadding="2"
|+ Echo-Request-Schema
|+ Echo-Request-Schema
|- align="center"
|- align="center"
Zeile 399: Zeile 370:
|}
|}


; 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 (Datenübertragung)|Ping]]
* Ein ''Echo Request'' ist nichts anderes als ein simpler [[Ping (Datenübertragung)|Ping]]
Zeile 411: Zeile 383:


==== Echo Reply ====
==== Echo Reply ====
; Echo Reply - Type 129
{| class="wikitable float small"
{| class="wikitable float" cellpadding="2"
|+ Echo-Reply-Schema
|+ Echo-Reply-Schema
|- align="center"
|- align="center"
Zeile 428: Zeile 399:
|}
|}


; 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. ''Echo-Reply''-Nachrichten sollen nur an Unicast-Adressen verschickt werden
* Das Paket ist bis auf das Typenfeld dasselbe. ''Echo-Reply''-Nachrichten sollen nur an Unicast-Adressen verschickt werden
Zeile 447: Zeile 419:
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/IPv6}}
{{Special:PrefixIndex/IPv6/ICMP}}
 
==== RFC ====
==== RFC ====
{| class="wikitable sortable options big"
{| class="wikitable sortable options"
|-
|-
! RFC !! Titel
! RFC !! Titel
|-
|-
| [https://www.rfc-editor.org/rfc/rfc4861 4861] || Neighbor Discovery for IP Version 6 (IPv6)
| [https://www.rfc-editor.org/rfc/rfc3122 3122] || Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification
|-
|-
| [https://www.rfc-editor.org/rfc/rfc4443 4443] || Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
| [https://www.rfc-editor.org/rfc/rfc4443 4443] || Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
|-
|-
| [https://www.rfc-editor.org/rfc/rfc3122 3122] || Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification
| [https://www.rfc-editor.org/rfc/rfc4604 4604] ||
|-
| [https://www.rfc-editor.org/rfc/rfc4861 4861] || Neighbor Discovery for IP Version 6 (IPv6)
|-
|-
|- [https://www.rfc-editor.org/rfc/rfc4890 4890] || Recommendations for Filtering ICMPv6 Messages in Firewalls
|- [https://www.rfc-editor.org/rfc/rfc4890 4890] || Recommendations for Filtering ICMPv6 Messages in Firewalls
Zeile 464: Zeile 439:
|-
|-
| [https://www.rfc-editor.org/rfc/rfc8200 8200] || Internet Protocol, Version 6 (IPv6) Specification, löst [https://www.rfc-editor.org/rfc/rfc2460 2460] ab
| [https://www.rfc-editor.org/rfc/rfc8200 8200] || Internet Protocol, Version 6 (IPv6) Specification, löst [https://www.rfc-editor.org/rfc/rfc2460 2460] ab
|-
| [https://www.rfc-editor.org/rfc/rfc4604 4604] ||
|}
|}
# [https://www.iana.org/assignments/icmpv6-parameters IANA ICMP Parameters] || vollständige Liste der ICMPv6-Typen und -Codes


==== Links ====
==== Links ====
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/ICMPv6
# https://de.wikipedia.org/wiki/ICMPv6
# [https://www.iana.org/assignments/icmpv6-parameters IANA ICMP Parameters] - Vollständige Liste der ICMPv6-Typen und -Codes


[[Kategorie:Abkürzung]]
[[Kategorie:IPv6/ICMP]]
[[Kategorie:IPv6/ICMP]]
</noinclude>
</noinclude>

Aktuelle Version vom 9. November 2024, 11:29 Uhr

IPv6/ICMP - ICMPv6 (Internet Control Message Protocol für IPv6)

Beschreibung

ICMPv6 (Internet Control Message Protocol Version 6)
Familie Internetprotokolle
Einsatzgebiet Fehlermeldungen, Diagnose, Autoconfiguration, Routing
Internet-Protokolle im TCP/IP-Protokollstapel
Internet ICMPv6
IPv6
Netzzugang Ethernet Token
Bus
IEEE
802.11a/b/g/n
FDDI

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

ICMPv6 zwingend notwendig

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

Header

ICMPv6 Header
0 Type Code Prüfsumme
ICMPv6-Nachricht …

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

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

Gruppe TType Beschreibung
Fehlernachrichten 0–127 mit dem höchstwertigen Bit (engl. most significant bit) auf 0, sind Fehlernachrichten
Informationsnachrichten 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

Destination Unreachable

Destination-Unreachable-Schema
0 Type Code Prüfsumme
32 Unbenutzt
Fehlerhaftes Paket
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

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

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

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

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

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

Parameter-Problem-Schema
0 Type Code Prüfsumme
32 Pointer
Fehlerhaftes Paket
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

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

Informationsnachrichten

Type Beschreibung RFC
128 Echo Request RFC 4443
129 Echo Reply|Echo Reply RFC 4443]
130 Multicast Listener Query RFC 2710 und RFC 3810
131 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

Echo Request

Echo-Request-Schema
0 Type Code Prüfsumme
32 Identifikation Sequenznummer
Daten
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 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

Echo-Reply-Schema
0 Type Code Prüfsumme
32 Identifikation Sequenznummer
Daten
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

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

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

RFC

RFC Titel
3122 Extensions to IPv6 Neighbor Discovery for Inverse Discovery Specification
4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
4604
4861 Neighbor Discovery for IP Version 6 (IPv6)
7112 Implications of Oversized IPv6 Header Chains
8200 Internet Protocol, Version 6 (IPv6) Specification, löst 2460 ab

Links

Weblinks
  1. https://de.wikipedia.org/wiki/ICMPv6
  2. IANA ICMP Parameters - Vollständige Liste der ICMPv6-Typen und -Codes