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.
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
| Valeur | En-tête | Description |
|---|---|---|
00 | Hop-by-Hop Options | Traité par tous les nœuds sur le chemin |
60 | Destination Options (1) | Données pour la destination intermédiaire |
43 | Routing | Spécifie les nœuds intermédiaires obligatoires |
44 | Fragment | Fragmentation par la source |
51 | AH (Authentication Header) | Authentification et intégrité |
50 | ESP (Encapsulating Security Payload) | Chiffrement |
60 | Destination 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| Champ | Taille | Description |
|---|---|---|
| Fragment Offset | 13 bits | Offset en multiples de 8 octets |
| M (More) | 1 bit | 1 = fragments suivants, 0 = dernier fragment |
| Identification | 32 bits | Identique 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.
# 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
- En-tête IPv6 — Structure — champ Next Header de base
- Introduction à IPv6 — contexte général
- Transition IPv4/IPv6 — ESP utilisé dans les tunnels