Entête IPv6
Par Sébastien FONTAINE (_SebF)

1 - Définition du protocole
2 - Structure de l'entête
3 - Définition des différents champs
        3.1 - Version (Version)
        3.2 - Classe (Traffic Class)
        3.3 - Label (Flow Label)
        3.4 - Longueur (Payload Length)
        3.5 - Entête suivante (Next Header)
        3.6 - Saut maximum (Hop Limit)
        3.7 - Adresse source (Source Address)
        3.8 - Adresse destination (Destination Address)
4 - Structure des options de l'entête
        4.1 - Sauts après sauts (Hop-by-Hop)
        4.2 - Routage (Routing)
        4.3 - Fragmentation (Fragment)
        4.4 - Destination (Destination)
        4.5 - AH (Authentication)
        4.6 - ESP (Encapsulating Security Payload)
5 - Définition des différentes champs des Options
        5.1 - Sauts après sauts (Hop-by-Hop)
        5.2 - Routage (Routing)
        5.3 - Fragmentation (Fragment)
        5.4 - Destination (Destination)
        5.5 - AH (Authentication)
        5.6 - ESP (Encapsulating Security Payload)
6 - Discussion autour de la documentation
7 - Suivi du document

1 - Définition du protocole

Lorsque le protocole Internet IPv4 a été lancé, Internet était minuscule est relativement privé. Il semblait inimaginable d'atteindre les près de 4.300.000 adresses disponibles. Aujourd'hui, Internet est victime de son succès et l'espace d'adressage d'IPv4 est incapable de répondre à la forte demande d'adresse à travers le monde. En effet, personne n'imaginait à l'époque d'utiliser un jour une adresse IP pour téléphoner, jouer, naviguer sur Internet avec un téléphone portable ou bien un assistant personnel. On compte aujourd'hui plus d'objets intelligents connectés que d'être humain sur Terre.

C'est à cette pénurie d'adresses que doivent faire face aujourd'hui les RIR. Bien sûr des solutions ont été développé, ce qui à considérablement ralentit le déploiement industrielle d'IPv6. Voici la liste de ces solutions :

  • DHCP, Dynamic Host Configuration Protocol, permet d'allouer dynamiquement les adresses seulement quand les machines sont connectées.

  • HTTP 1.1, permettant, principalement, d'héberger plusieurs site web avec une seule adresse IP.

  • NAT, Network Address Translation, permet de réduire le nombre d'adresses publiques utilisées en proposant de réaliser grâce à une fonction de routeur, la translation des adresses privées d'un site.

Cet emploi généralisé des NAT a conduit à une complexification de la gestion des réseaux et à un alourdissement des mécanismes de routage. Cela nuit également au développement d'application Peer to Peer temps réel comme la VoIP. De plus, associé à la sécurité et à la mobilité, ces services sont des raisons supplémentaires au besoin d'IPv6.

IPv6 est définit par la RFC 2460.

2 - Structure de l'entête

Voici la structure de l'entête IP basé sur 40 octets.

TCPIP IPV6 VOIP VPN IP IPV4

TCPIP IPV6 VOIP VPN IP IPV4

3 - Définition des différents champs

L'entête qui était de 20 octets en IPv4 passe à 40 octets en IPv6. Certains champs d'IPv4 ont été supprimés, ou sont maintenant optionnels, ceci afin de réduire le coût de traitement des paquets et de bande passante des entêtes IPv6.

3.1 - Version (Version)

Le champ "Version" est codé sur 4 bits. Il représente le numéro de version du Protocole Internet. Sa valeur est donc égale à 6 (0110 base 2). Ce champ est identique à la pile IPV4, il sert justement à identifier le protocole de couche 3 du modèle OSI. Voici la liste des différent codes :

- 00 - Réservé
- 01 - Non assigné
- 02 - Non assigné
- 03 - Non assigné
- 04 - IP V4
- 05 - ST Datagram Mode
- 06 - IP V6
- 07 - Non assigné
- 08 - Non assigné
- 09 - Non assigné
- 10 - Non assigné
- 11 - Non assigné
- 12 - Non assigné
- 13 - Non assigné   
- 14 - Non assigné   
- 15 - Réservé

3.2 - Classe (Traffic Class)

Le champ "Classe" est codé sur 8 bits. Il définit la priorité du datagramme afin que des noeuds origines et des routeurs transmetteurs puissent identifier et distinguer la classe ou la priorité du paquets IPv6 en question.

3.3 - Label (Flow Label)

Le champ "Label" est codé sur 20 bits. Il peut être utilisé par une source pour nommer des séquences de paquets pour lesquels un traitement spécial de la part des routeurs IPv6 est demandé. Ce traitement spécial pourrait être une qualité de service différente du service par défaut ou un service "temps réel".

3.4 - Longueur (Payload Length)

Le champ "Longueur" est codé sur 16 bits. Le champ "Longueur" de l'entête IPV4 indiquait la longueur des données incluant l'entête IPV4. Contrairement à cela, cette fois le champ "Longueur" de l'entête IPv6 indique le nombre d'octet des données qui suivent cette entête IPv6. Il faut noté que les options de l'entête IPv6 sont considérés comme de la donnée et font donc partie du calcul du champ "Longueur".

3.5 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière l'entête IPv6. Les valeurs employées sont identiques au champ "Protocole" de l'entête IPV4. Vous trouverez tous les détails des types de protocole dans la RFC 1700 qui remplace désormais la RFC 1340.

 Voici la liste des protocoles les plus connu :
 
 - 01 - 00000001 - ICMP
 - 02 - 00000010 - IGMP
 - 06 - 00000110 - TCP
 - 17 - 00010001 - UDP
 - 58 - 00111010 - ICMPV6

Voici la liste des options de l'entête IPv6 vues plus bas :

- 00 - Option Sauts après sauts
- 60 - Option Destination
- 43 - Option Routage
- 44 - Option Fragmentation
- 51 - Option AH
- 50 - Option ESP

3.6 - Saut maximum (Hop Limit)

Le champ "Saut maximum" est codé sur 8 bits. Il indique le nombre de routeur maximum que le datagramme pourra traverser. Identiquement au champ "TTL" de l'entête IPV4, il est décrémenté de 1 par chaque noeud que le paquet traverse.

3.7 - Adresse source (Source Address)

Le champ "Adresse source" est codé sur 128 bits. Il représente l'adresse IP de l'émetteur.

3.8 - Adresse destination (Destination Address)

Le champ "Adresse destination" est codé sur 128 bits. Il représente l'adresse IP du destinataire.

4 - Structure des options de l'entête

4.1 - Sauts après sauts (Hop-by-Hop)

Voici la structure de cette option basée sur N octets.

TCPIP IPV6 VOIP VPN IP IPV4

4.2 - Routage (Routing)

Voici la structure de cette option basée sur N octets.

TCPIP IPV6 VOIP VPN IP IPV4

4.3 - Fragmentation (Fragment)

Voici la structure de cette option basée sur 8 octets.

TCPIP IPV6 VOIP VPN IP IPV4

4.4 - Destination (Destination)

Voici la structure de cette option basée sur N octets.

TCPIP IPV6 VOIP VPN IP IPV4

4.5 - AH (Authentication)

Voici la structure de cette option basée sur N octets.

TCPIP IPV6 VOIP VPN IP IPV4

4.6 - ESP (Encapsulating Security Payload)

Voici la structure de cette option basée sur N octets.

TCPIP IPV6 VOIP VPN IP IPV4

5 - Définition des différentes champs des Options

Lors de l'utilisation de plusieurs extensions, il est recommandé d'utiliser l'ordre suivant :

  • Entête IPv6

  • Option Sauts après sauts

  • Option Destination

  • Option Routage

  • Option Fragmentation

  • Option AH

  • Option ESP

  • Option Destination

  • Entête de couche supérieure

5.1 - Sauts après sauts (Hop-by-Hop)

L'option "Sauts après sauts" est utilisée pour transporter des informations optionnelles qui doivent être examinées par chaque noeud le long du chemin emprunté par le paquet. Cette Option est codé 0 et est définie par la RFC 2460.

5.1.1 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.1.2 - Longueur (Hdr Ext Len)

Le champ "Longueur" est codé sur 8 bits. Il représente la taille de cette Option "Sauts après sauts". L'unité de mesure est les mots de 8 octets sans compter les 8 premiers octets.

5.1.3 - Options (Options)

Le champ "Options" est codé sur N bits. Il contient le contenu de l'option à spécifier.

5.2 - Routage (Routing)

L'option de "Routage" est utilisée par une source IPv6 pour lister au moins un noeud intermédiaire à aller voir sur le chemin emprunté par le paquet vers la destination. Cette fonction est très similaire aux options de "Loose Source" ou "Record Route" de l'entête IPV4. Cette Option est codé 43 et est définie par la RFC 2460.

5.2.1 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.2.2 - Longueur (Hdr Ext Len)

Le champ "Longueur" est codé sur 8 bits. Il représente la taille de cette Option "Routage". L'unité de mesure est les mots de 8 octets sans compter les 8 premiers octets.

5.2.3 - Type (Routing Type)

Le champ "Type" est codé sur 8 bits. Il identifie la variante particulière de l'entête de routage.

5.2.4 - Segment (Segments Left)

Le champ "segment" est codé sur 8 bits. Il indique le nombre de segments de chemin restant. C'est à dire le nombre de noeuds intermédiaires listés explicitement qu'il reste à traverser avant d'atteindre la destination finale.

5.1.5 - Données  (type-specific data)

Le champ "Données" est codé sur N bits. Il contient le contenu de l'option à spécifier.

5.3 - Fragmentation (Fragment)

L'option de "Fragmentation" est utilisée par une source IPv6 pour envoyer un paquet plus large que celui qui tiendrait dans le MTU vers la destination. Attention, contrairement à l'entête IPV4, la fragmentation dans IPv6 n'est réalisée que par les noeuds sources et non par les routeurs le long d'un chemin emprunté par le paquet. Cette Option est codé 44 et est définie par la RFC 2460.

5.2.1 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.2.2 - Réservé (Reserved)

Le champ "Réservé" est codé sur 8 bits. Il est prévu pour des besoins futurs, en attendant, sa valeurs doit être positionnée à 0 pour l'émission et il doit être ignoré pour la réception.

5.2.3 - Offset (Fragment Offset)

Le champ "Offset" est codé sur 13 bits. Il indique l'offset des données suivant cette entête, en nombre de mots de 8 octets, par rapport au début de la partie fragmentable du paquet original.

5.2.4 - Réservé (Res)

Le champ "Réservé" est codé sur 2 bits. Il est prévu pour des besoins futurs, en attendant, sa valeurs doit être positionnée à 0 pour l'émission et il doit être ignoré pour la réception.

5.2.5 - M (M)

Le champ "M" est codé sur 1 bit. Il peux prendre deux valeurs. 0 pour indiquer que c'est le dernier fragment et 1 pour signifier que ce n'est pas terminé.

5.1.6 - Identification (Identification)

Le champ "Identification" est codé sur 32 bits. Pour chaque paquet devant être fragmenté, le noeud source génère une valeur d'Identification. L'Identification doit être différente de tout autre identification de paquet fragmenté envoyé récemment avec les mêmes Adresse Source et Adresse Destination. Si un entête de routage est présent, l'Adresse Destination concernée est celle de la destination finale.

5.4 - Destination (Destination)

L'option de "Destination" est utilisée pour transporter des informations optionnelles qui ont besoin d'être examinées uniquement par les noeuds destination du paquet. Cette Option est codé 60 et est définie par la RFC 2460.

5.4.1 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.4.2 - Longueur (Hdr Ext Len)

Le champ "Longueur" est codé sur 8 bits. Il représente la taille de cette Option "Destination". L'unité de mesure est les mots de 8 octets sans compter les 8 premiers octets.

5.4.3 - Options (Options)

Le champ "Options" est codé sur N bits. Il contient le contenu de l'option à spécifier.

5.5 - AH (Authentication)

L'option "AH" est utilisée pour fournir un mécanisme permettant au destinataire de s'assurer de l'identité de la source et de l'intégrité des données. Cela fournit surtout une bonne protection contre les rejeux et les spoofing IP. Cette Option est codé 51 et est définie par la RFC 4302.

5.5.1 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.5.2 - Longueur (Payload Len)

Le champ "Longueur" est codé sur 8 bits. Il représente la taille de cette Option "AH". L'unité de mesure est les mots de 4 octets avec une valeur minimale de 2.

5.5.3 - Réservé (Reserved)

Le champ "Réservé" est codé sur 16 bits. Il est prévu pour des besoins futurs, en attendant, sa valeurs doit être positionnée à 0 pour l'émission et il doit être ignoré pour la réception.

5.5.4 - SPI (Security Parameters Index)

Le champ "SPI" est codé sur 32 bits. Il permet au destinataire d'identifier l'association de sécurité (SA) avec le datagramme entrant.

5.5.5 - Séquence (Sequence Number Field)

Le champ "Séquence" est codé sur 32 bits. Il contient le numéro de séquence du SA. Il est incrémenté à chaque datagramme.

5.5.6 - ICV (Integrity Check Value-ICV)

Le champ "ICV" est codé sur N bits. Il contient la valeur du résultat d'un procédé cryptographique sur les données. Cela permet de protéger et vérifier l'intégrité de celles-ci.

5.6 - ESP (Encapsulating Security Payload)

L'option "ESP" est utilisée après l'entête IP et avant les données (l'entête de couche supérieur). Elle complète l'option 'AH" afin d'offrir la confidentialité des données. Elle permet en plus de chiffrer l'ensemble des paquets incluant ou pas l'entête IPv6. Cette Option est codé 50 et est définie par la RFC 4303.

5.6.1 - SPI (Security Parameters Index)

Le champ "SPI" est codé sur 32 bits. Il permet au destinataire d'identifier l'association de sécurité (SA) avec le datagramme entrant.

5.6.2 - Séquence (Sequence Number)

Le champ "Séquence" est codé sur 32 bits. Il contient le numéro de séquence du SA. Il est incrémenté à chaque datagramme.

5.6.3 - Données utiles (Payload Data)

Le champ "Données utiles" est codé sur N bits. Il contient les données chiffrées.

5.6.4 - Remplissage (Padding)

Le champ "Remplissage" est codé sur N bits. Il permet de combler l'entête de données non intéressante afin d'obtenir une taille de multiple. La longueur maximum possible est 255 octets.

5.6.5 - Longueur (Pad Length)

Le champ "Longueur" est codé sur 8 bits. Il représente la taille du champ "Remplissage".

5.6.6 - Entête suivante (Next Header)

Le champ "Entête suivante" est codé sur 8 bits. Il identifie le type de la Data ou de l'option qui se trouve derrière cette option de l'entête IPv6. tous les détails sont dans la définition du champ "Entête suivante" de l'entête IPv6 en paragraphe 3.5.

5.6.7 - ICV (Integrity Check Value)

Le champ "ICV" est codé sur N bits. Il contient le Hash de l'entête ESP.

6 - Discussion autour de la documentation

Vous pouvez poser toutes vos questions, vos remarques et vos expériences à propos d'IPv6. Pour cela, rendez-vous sur le TCPIP.

7 - Suivi du document

Le 10 Avril 2007, par Sébastien FONTAINE, création du document.



mot clé : Classe Payload Hop-by-Hop Saut maximum entête ip Version destination Traffic tcpipv6 tcpip voip Payload Label Hop Limit Adresse udpv6 tfv6 ip Routing tcpipv6 source options Fragmentation tcpip v6 Authentication ESP version6 ipv6 Définition protocole Routage Header Security ipv4 version 6 structure Longueur champs version v6 vpn AH sauts Encapsulating tcpv6 ipv6

Copyright © 2011-2015 FrameIP TcpIP. Tous droits réservés. Les marques et marques commerciales mentionnées appartiennent à leurs propriétaires respectifs. L'utilisation de ce site Web TcpIP implique l'acceptation des conditions d'utilisation et du règlement sur le respect de la vie privée.
Sécurité entreprise Téléphonie entreprise Expert de votre Infrastructure Test ADSL Serinya Operateur Telecom