Internet Control Message Protocol V6

L’ICMP pour IPv6 (Internet Control Message Protocol Version 6) fait partie à part entière de l'architecture IPv6 et doit être complètement supportée par toutes les implémentations d'IPv6. ICMPv6 combine des fonctions antérieurement subdivisées à travers différents protocoles, tels qu’ICMP v4 (Internet Control Message Protocol version 4), IGMP (Internet Group Membership Protocol), et ARP (Address Resolution Protocol), et il introduit quelques simplifications en éliminant des types de messages obsolètes qui ne sont plus utilisés.

L'Internet Protocol, version 6 (IPv6) est une nouvelle version d'IP. IPv6 utilise le protocole ICMP comme défini pour IPv4[1], avec quelques changements. Le protocole résultant est appelé ICMPv6. Cet article décrit le format d'un ensemble de messages de contrôle utilisés par ICMPv6.

ICMPv6 est un protocole générique ; par exemple, il est utilisé pour rapporter des erreurs trouvées dans le traitement de paquets, effectuer des diagnostics, effectuer une découverte de voisinage, et rapporter l'appartenance à un multicast. Pour cette raison, les messages ICMPv6 sont catégorisés en deux classes : error messages et information messages.

Les datagrammes ICMP sont transportés à l'intérieur de datagrammes IPv6 dans lequel un en-tête d'extension peut aussi être présent. Un message ICMP est identifié par sa valeur 58 (0x3A) positionnée dans le champ Next Header de l'en-tête IPv6.

ICMPv6 (ICMP pour IPv6)

[modifier | modifier le code]

ICMPv6 est utilisé par les nœuds/hôtes IPv6 pour rapporter les erreurs trouvées dans le traitement de datagrammes, et pour effectuer d'autres traitements internes à cette couche, tels que des diagnostics (ICMPv6 « ping »).

Format des paquets

[modifier | modifier le code]

Les paquets ICMPv6 ont le format Type, Code & Checksum. Le champ Type de 8-bits indique le type du message. Si le bit de poids fort a une valeur de zéro, il s'agit d'un message d'erreur, sinon c'est un message d’information. Le contenu du champ Code de 8 bits dépend du type de message, et est utilisé pour créer un niveau additionnel de granularité de message. Le champ Checksum est utilisé pour détecter des erreurs dans le message ICMP à l'intérieur du message IPv6.

Messages d'erreur

[modifier | modifier le code]

Les messages d'erreur ICMPv6 sont similaires à ceux d’ICMPv4. Ils appartiennent à l'une des quatre catégories : Destination non atteignable, Paquet trop gros, Time out, et Problèmes de paramétrage.

  • 1 - Destination Unreachable
  • 2 - Packet Too Big
  • 3 - Time Exceeded
  • 4 - Parameter Problem

Messages informatifs

[modifier | modifier le code]

L'autre type de messages ICMP est divisé en trois groupes : messages de diagnostic, messages pour la gestion des groupes multicast, et messages de découverte de voisinage. (diagnostic messages, messages for the management of multicast groups, et Neighbor Discovery messages.)

  • 128 - Echo Request
  • 129 - Echo Reply

Format des datagrammes

[modifier | modifier le code]
Bit 0 à 7 Bit 8 à 15 Bit 16 à 23 Bit 24 à 31
Type Code Checksum
Message Body

Message Source Address Determination

[modifier | modifier le code]

Un nœud qui envoie un message ICMPv6 doit déterminer à la fois les adresses IPv6 de Source et de Destination de l'en-tête IPv6 avant de calculer la somme de contrôle. Si le nœud a plus d'une adresse unicast, il doit choisir l'adresse source du message de la manière suivante :

  • (a) Si le message est une réponse à un message envoyé à l'une des adresses unicast du nœud, l'adresse Source de la réponse doit être la même.
  • (b) Si le message est une réponse à un message envoyé en multicast ou anycast, d'un groupe dont le nœud est membre, l'adresse de la réponse doit appartenir au groupe.
  • (c) Si le message est une réponse à un message envoyé à une adresse n'appartenant pas au nœud, l'adresse source devrait être l'adresse unicast du nœud qui sera la plus utile au diagnostic de l'erreur.
  • (d) Dans les autres cas, en fonction de la table de routage.

Types de messages ICMP

[modifier | modifier le code]
Type Signification
1 Destination Unreachable
2 Packet Too Big
3 Time Exceeded
4 Parameter Problem
128 Echo Request
129 Echo Reply
130 Group Membership Query
131 Group Membership Report
132 Group Membership Reduction
133 Router Solicitation
134 Router Advertisement
135 Neighbor Solicitation
136 Neighbor Advertisement
137 Redirect

Liste complète disponible sur le site de l'IANA : http://www.iana.org/assignments/icmpv6-parameters

Liens externes

[modifier | modifier le code]
  • RFC 4443[2] ICMPv6 version la plus récente (RFC 1885[3] et RFC 2463[4] version précédente)
  • RFC 3971[5] Découverte sécurisée du voisinage (SEND : SEcure Neighbor Discovery)
  • Gisèle Cizault, IPv6, Théorie et pratique, O'Reilly, (ISBN 978-2-84177-337-4), évolution du livre

Références

[modifier | modifier le code]