Command Center

Search for a vulnerability, tool, or protocol...

Networking

En-têtes d'Extension IPv6

Les 6 en-têtes d'extension IPv6 : Hop-by-Hop, Destination, Routing, Fragment, AH et ESP. Chaînage via le champ Next Header.

1 mars 2026Peran4 min de lecture
#ipv6#layer3#extension-headers#fragmentation#ipsec#routing#security

Introduction

En IPv6, les options sont encodées dans des en-têtes d'extension séparés, chaînés entre l'en-tête de base et l'en-tête de transport (TCP/UDP). Ce mécanisme remplace le champ Options d'IPv4 et permet un traitement plus efficace : chaque en-tête n'est traité que par la destination (sauf exception).

Mécanisme de Chaînage (Next Header)

Le champ Next Header (8 bits) de chaque en-tête indique quel type d'en-tête suit :

IPv6 Header        Routing Header      ESP Header        TCP + Data
┌──────────┐       ┌──────────┐        ┌──────────┐      ┌──────────┐
│Next=43   │──────►│Next=50   │───────►│Next=6    │─────►│ TCP Data
│(Routing) │       │(ESP)     │        │(TCP)     │      │          │
└──────────┘       └──────────┘        └──────────┘      └──────────┘

Ordre Recommandé des En-têtes d'Extension

ValeurEn-têteDescription
00Hop-by-Hop OptionsTraité par tous les nœuds sur le chemin
60Destination Options (1)Données pour la destination intermédiaire
43RoutingSpécifie les nœuds intermédiaires obligatoires
44FragmentFragmentation par la source
51AH (Authentication Header)Authentification et intégrité
50ESP (Encapsulating Security Payload)Chiffrement
60Destination Options (2)Données pour la destination finale

Chaque en-tête d'extension a une longueur multiple de 8 octets.

En-tête Hop-by-Hop (Next Header = 00)

Exception : c'est le seul en-tête traité par tous les nœuds intermédiaires, y compris source et destination. Il doit immédiatement suivre l'en-tête IPv6.

Cas d'usage :

  • Transport de Jumbograms (paquets > 65 535 octets)
  • Messages d'alerte de routeurs (RSVP IPv6, MLD — Multicast Listener Discovery)
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header   | Header Ext Len|  Option Type  | Option Len    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Option Data                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

En-tête Routing (Next Header = 43)

Impose au paquet de traverser des nœuds intermédiaires spécifiques avant d'atteindre la destination finale.

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header   | Header Ext Len| Routing Type  | Segments Left |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Address [1] (128 bits)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Address [2] (128 bits)                  |
...
  • Segments Left : nombre de nœuds encore à visiter
  • L'adresse destination est modifiée à chaque saut pour pointer vers le nœud suivant

En-tête Fragment (Next Header = 44)

La fragmentation est réalisée uniquement par la source en IPv6 (jamais par les routeurs).

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+--+
| Next Header   | Reserved      | Fragment Offset|Res|M|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   Identification                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ChampTailleDescription
Fragment Offset13 bitsOffset en multiples de 8 octets
M (More)1 bit1 = fragments suivants, 0 = dernier fragment
Identification32 bitsIdentique pour tous les fragments du même paquet original

En-tête AH — Authentication Header (Next Header = 51)

Assure l'authentification et l'intégrité du paquet (protection contre la falsification). Ne chiffre pas les données.

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header   | Header Ext Len|          Reserved           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Security Parameter Index (SPI)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Sequence Number Field (SNF)                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Authentication Data (ICV)                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  • SPI : identifiant de l'association de sécurité (SA) avec l'adresse destination
  • SNF : protection contre les attaques de rejeu (replay attacks)
  • ICV : valeur d'intégrité calculée par la source

En-tête ESP — Encapsulating Security Payload (Next Header = 50)

Assure le chiffrement des données (protection contre les écoutes passives). Peut aussi fournir l'authentification.

ipsec-ipv6.shbash
# Linux — Configurer une SA IPsec pour IPv6
ip xfrm state add \
  src 2001:DB8::1 dst 2001:DB8::2 \
  proto esp spi 0x12345 \
  enc aes 0x$(openssl rand -hex 16) \
  auth sha256 0x$(openssl rand -hex 32)
 
# Voir les associations de sécurité
 
ip xfrm state list
 
# Voir les politiques IPsec
 
ip xfrm policy list
 

Exemple Complet — Paquet avec Routing + ESP + Fragment

 
IPv6 Header Routing Header ESP Header Fragment Header TCP + Data
[Next=43] ──► [Next=50] ──► [Next=44] ──► [Next=6] ──► [TCP Data]
 
Traités par :
 
- Routing : chaque nœud intermédiaire
- ESP + Fragment : destination uniquement
 

Voir Aussi