Transition IPv4/IPv6 — Dual Stack, Tunneling & NAT64
Les mécanismes de coexistence et de migration entre IPv4 et IPv6 : Dual Stack, tunnels 6in4 / GRE / ISATAP et traduction NAT64.
Introduction
La transition d'IPv4 vers IPv6 ne peut pas se faire du jour au lendemain. Trois grandes familles de mécanismes permettent la coexistence et la migration progressive : le Dual Stack (cohabitation), le Tunneling (encapsulation) et la Traduction (NAT64). Ces mécanismes sont définis dans les RFC 4213, 4380, 4798 et 6146.
Points Clés
- Les trois grandes familles : Dual Stack, Tunneling, Traduction NAT64.
- Dual Stack est la méthode recommandée à long terme : chaque nœud parle les deux protocoles.
- Le Tunneling encapsule IPv6 dans IPv4 pour traverser des infrastructures IPv4 existantes.
- NAT64 permet à des hôtes IPv6 de contacter des serveurs IPv4.
- 6to4 est déprécié (RFC 7526) ; préférer les tunnels GRE managés.
- Tous ces mécanismes sont transitoires ; l'objectif final est un réseau full-IPv6.
1. Dual Stack
Principe
Chaque routeur et chaque hôte possède simultanément une adresse IPv4 et IPv6. Il choisit le protocole à utiliser en fonction de la destination.
! Sur un routeur : activer les deux protocoles
Router(config)# ip routing
Router(config)# ipv6 unicast-routing
! Sur une interface : configurer les deux adresses
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# ipv6 address 2001:DB8:1::1/64
Router(config-if)# no shutdown
Avantages : Simple, transparent, compatible avec tous les équipements. Inconvénients : Nécessite deux plans d'adressage et deux protocoles de routage à maintenir.
2. Tunneling (6in4 / GRE / ISATAP)
Principe Général
On encapsule des paquets IPv6 dans IPv4 pour traverser une infrastructure IPv4 existante. Le paquet IPv6 devient la charge utile d'un paquet IPv4.
[En-tête IPv4] [En-tête IPv6] [Données]
← Transport → ← Passager →
Tunnel GRE Manuel (le plus courant en entreprise)
! Configuration du tunnel GRE IPv6-in-IPv4 sur R1
Router1(config)# interface Tunnel0
Router1(config-if)# ipv6 address 2001:DB8:FF::/64 eui-64
Router1(config-if)# tunnel source GigabitEthernet0/0 ! IP IPv4 source
Router1(config-if)# tunnel destination 203.0.113.2 ! IP IPv4 du pair (R2)
Router1(config-if)# tunnel mode gre ip
Router1(config-if)# no shutdown
! Ajouter une route IPv6 vers le réseau distant via le tunnel
Router1(config)# ipv6 route 2001:DB8:2::/64 Tunnel0
Tunnel 6in4 (Mode ipv6ip)
! Encapsulation IPv6-in-IPv4 directe (sans overhead GRE)
Router(config)# interface Tunnel0
Router(config-if)# ipv6 address 2001:DB8:FF::1/64
Router(config-if)# tunnel source 198.51.100.1
Router(config-if)# tunnel destination 198.51.100.2
Router(config-if)# tunnel mode ipv6ip ! 6in4 pur (pas GRE)
Router(config-if)# no shutdown
ISATAP (Intra-Site Automatic Tunnel Addressing Protocol)
ISATAP encapsule IPv6 dans IPv4 à l'intérieur d'un site. L'Interface ID est dérivé de l'adresse IPv4 :
Format ISATAP : <Préfixe>/64 + 0000:5EFE:<IPv4-en-hex>
Exemple IP : 192.168.1.10 → C0A8:010A
Adresse ISATAP : 2001:DB8:1::0000:5EFE:C0A8:010A
Router(config)# interface Tunnel0
Router(config-if)# ipv6 address 2001:DB8:1::/64 eui-64
Router(config-if)# tunnel source GigabitEthernet0/0
Router(config-if)# tunnel mode ipv6ip isatap
Router(config-if)# no shutdown
3. NAT64 — Traduction d'Adresses
Principe
NAT64 permet à des hôtes IPv6-only de contacter des serveurs IPv4-only via une traduction d'adresses. Il nécessite un préfixe dédié (souvent 64:FF9B::/96).
[Client IPv6] → [Routeur NAT64] → [Serveur IPv4]
2001:DB8::A Traduit en IPv4 203.0.113.5 + combine avec
64:FF9B::CB00:7105
! Activer NAT64 globalement
Router(config)# nat64 enable
! Définir le préfixe de traduction (RFC 6052)
Router(config)# nat64 prefix stateless 64:FF9B::/96
! Configuration des interfaces
Router(config)# interface GigabitEthernet0/0
Router(config-if)# description "Interface côté IPv6"
Router(config-if)# nat64 enable
Router(config)# interface GigabitEthernet0/1
Router(config-if)# description "Interface côté IPv4"
Router(config-if)# nat64 enable
Tableau Récapitulatif
| Mécanisme | Sens | Cas d'usage | Déprécié? |
|---|---|---|---|
| Dual Stack | IPv4 + IPv6 | Migration progressive | Non ✅ |
| GRE Tunnel | IPv6 → IPv4 → IPv6 | WAN d'entreprise | Non ✅ |
| 6in4 Statique | IPv6 → IPv4 | Liaisons point-à-point | Non ✅ |
| ISATAP | IPv6 intra-site | Déploiement interne | Partiellement ⚠️ |
| 6to4 | Automatique | Accès IPV6 via IPv4 | Oui ❌ (RFC 7526) |
| Teredo | IPv6 derrière NAT | Clients Windows | Limité ⚠️ |
| NAT64 | IPv6→IPv4 | Hôtes IPv6 vers serveurs IPv4 | Non ✅ |
Vérification
! Vérifier l'état d'un tunnel
Router# show interfaces Tunnel0
! Table de routage (routes via le tunnel)
Router# show ipv6 route
! Tester la connectivité via le tunnel
Router# ping 2001:DB8:2::1 source GigabitEthernet0/0
! Vérifier les sessions NAT64
Router# show nat64 translations
Router# show nat64 statistics
[Site A — IPv4/IPv6] [Site B — IPv4/IPv6]
R1: 192.168.1.1 / 2001:DB8:1::1 R2: 172.16.1.1 / 2001:DB8:2::1
│ │
└──── Tunnel GRE (IPv6-in-IPv4) ──────────┘
Via réseau WAN IPv4 pur
203.0.113.0/30
Liens Connexes
- Comprendre l'adressage IPv6 est indispensable avant d'aborder la transition.
- Pour le routage dans les tunnels, voir Routage Statique IPv6 ou OSPFv3.
- NDP fonctionne différemment dans certains tunnels : voir NDP.