IPv4 commence à manquer d’adresses depuis les années 2010. IPv6 est son successeur, conçu pour adresser des milliards de milliards d’appareils. Ce guide explique son fonctionnement, sa structure, ses types d’adresses, les commandes pratiques sur Linux, Windows et macOS, ainsi que les mécanismes de transition.
Sommaire
Pourquoi IPv6 ?
IPv4, le protocole d’adressage réseau en service depuis 1983, utilise des adresses sur 32 bits. Cela autorise théoriquement 4,3 milliards d’adresses uniques — un chiffre qui paraissait astronomique dans les années 1980, mais insuffisant dès lors que smartphones, objets connectés et serveurs cloud ont explosé.
IPv4 — épuisement
L’IANA (autorité de nommage Internet) a distribué son dernier bloc d’adresses IPv4 en février 2011. Les registres régionaux (RIPE NCC pour l’Europe) ont suivi entre 2012 et 2020. Depuis, les adresses IPv4 publiques s’achètent et se revendent sur un marché secondaire.IPv6 — l’espace infini
IPv6 utilise des adresses sur 128 bits, soit 2¹²⁸ adresses possibles — environ 340 sextillions (3,4 × 10³⁸). C’est assez pour attribuer des milliards d’adresses à chaque grain de sable de la Terre.Structure d’une adresse IPv6
Une adresse IPv6 est composée de 128 bits, représentés sous forme de 8 groupes de 4 chiffres hexadécimaux, séparés par des deux-points (:).
2001:0db8:85a3:0000:0000:8a2e:0370:7334
├── Préfixe réseau (64 bits) ──────────────────┤ Interface ID (64 bits) ──────────┤
Règles de simplification
IPv6 autorise deux abréviations pour raccourcir l’écriture :
- Supprimer les zéros initiaux dans chaque groupe :
0db8→db8,0000→0 - Remplacer une suite de groupes nuls consécutifs par
::(une seule fois par adresse)
2001:0db8:85a3:0000:0000:8a2e:0370:7334
→ 2001:db8:85a3:::8a2e:370:7334
Adresse de loopback complète :
0000:0000:0000:0000:0000:0000:0000:0001
→ ::1
Adresse non spécifiée :
0000:0000:0000:0000:0000:0000:0000:0000
→ ::
:: ne peut apparaître qu’une seule fois dans une adresse. Sinon il serait impossible de savoir combien de groupes nuls il remplace.
Types d’adresses IPv6
Unicast globale publique
Équivalent de l’IP publique IPv4. Préfixe2000::/3. Routable sur Internet. Attribuée par le FAI.2001:db8::/32 est réservée à la documentation.
Link-local locale
Automatiquement configurée sur chaque interface. Préfixefe80::/10. Utilisée pour la découverte de voisins (NDP) et la configuration automatique. Non routable au-delà du lien local.
Loopback interne
Équivalent de127.0.0.1 en IPv4. Une seule adresse : ::1. Utilisée pour tester la pile réseau locale de la machine.
Unique locale privée
Équivalent des adresses privées IPv4 (192.168.x.x). Préfixefc00::/7 (en pratique fd00::/8). Non routable sur Internet. Utilisée dans les réseaux internes.
Multicast groupe
Adressage vers un groupe de destinataires. Préfixeff00::/8. Remplace le broadcast d’IPv4. Exemples : ff02::1 (tous les nœuds), ff02::2 (tous les routeurs).
Anycast distribué
Même adresse assignée à plusieurs nœuds. Le paquet est acheminé vers le nœud le plus proche. Utilisé pour les serveurs DNS et CDN.Préfixes et sous-réseaux
Comme en IPv4 avec le CIDR (/24, /16…), IPv6 utilise la notation préfixe/longueur. La longueur indique le nombre de bits réservés à la partie réseau.
| Préfixe | Bits réseau | Usage typique |
|---|---|---|
/32 | 32 | Bloc alloué à un FAI par le RIPE NCC |
/48 | 48 | Bloc alloué à un site / entreprise |
/56 | 56 | Bloc alloué à un client résidentiel (Freebox, Orange…) |
/64 | 64 | Sous-réseau standard — les 64 bits restants = Interface ID |
/128 | 128 | Adresse d’hôte unique (loopback, routes statiques précises) |
En IPv6, la seconde moitié de l’adresse (64 bits) est l’Interface Identifier. Il peut être généré automatiquement par la machine via SLAAC (Stateless Address Autoconfiguration) à partir de l’adresse MAC (EUI-64) ou de manière aléatoire (Privacy Extensions) — sans nécessiter de serveur DHCP.
IPv4 vs IPv6 — comparatif
| Critère | IPv4 | IPv6 |
|---|---|---|
| Longueur d’adresse | 32 bits | 128 bits |
| Notation | Décimale pointée : 192.168.1.1 | Hexadécimale à deux-points : 2001:db8::1 |
| Nb d’adresses | ~4,3 milliards | ~340 sextillions |
| Configuration automatique | DHCP requis | SLAAC intégré (sans serveur) |
| NAT | Très répandu (masquage) | Non nécessaire (chaque hôte a une IP publique) |
| Broadcast | Oui | Non — remplacé par le multicast |
| En-tête | Variable (20–60 octets) | Fixe (40 octets) — plus simple à traiter |
| IPsec | Optionnel | Intégré (facultatif en pratique) |
| Fragmentation | Par les routeurs intermédiaires | Uniquement par la source (MTU discovery) |
| Déploiement FAI FR | Universel | Largement déployé (Free, Orange, SFR, Bouygues) |
Linux — commandes pratiques
Afficher les adresses IPv6
baship -6 addr show # toutes les interfaces
ip -6 addr show eth0 # interface précise
ip -6 addr show scope global # uniquement les adresses globales
ip -6 addr show scope link # uniquement les link-local
Table de routage IPv6
baship -6 route show
ip -6 route show default # passerelle par défaut
Tester la connectivité
bashping6 ::1 # loopback local
ping6 -c 4 google.com # test connectivité externe
ping6 -c 4 ipv6.google.com # forcé en IPv6
traceroute6 ipv6.google.com # traceroute IPv6
DNS — résolution IPv6 (enregistrements AAAA)
bashdig AAAA google.com # enregistrement IPv6 de google.com
dig AAAA +short google.com # résultat compact
nslookup -type=AAAA google.com # alternative
Connexion SSH via IPv6
bashssh user@2001:db8::1 # adresse globale
ssh -6 user@monserveur.net # forcer IPv6
# Avec une adresse link-local (interface obligatoire) :
ssh user@fe80::1%eth0
Désactiver IPv6 (temporaire)
bashsysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
Pour rendre la désactivation persistante, ajouter dans /etc/sysctl.conf :
sysctl.confnet.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
Firewall — nftables / ip6tables
baship6tables -L -n -v # règles actuelles
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT # autoriser SSH en IPv6
nft list ruleset # règles nftables (Linux moderne)
Windows — commandes pratiques
Afficher les adresses IPv6
cmdipconfig # toutes les interfaces
ipconfig | findstr /i "ipv6" # filtrer IPv6
powershellGet-NetIPAddress -AddressFamily IPv6 | Select InterfaceAlias,IPAddress,PrefixLength
Table de routage IPv6
cmdnetsh interface ipv6 show route
route print -6
Tester la connectivité
cmd / powershellping -6 ::1 # loopback
ping -6 ipv6.google.com # test externe
tracert -6 ipv6.google.com # traceroute IPv6
DNS — résolution AAAA
powershellResolve-DnsName google.com -Type AAAA
nslookup -type=AAAA google.com
Désactiver IPv6 sur une interface
powershell (admin)Disable-NetAdapterBinding -Name "Ethernet" -ComponentID ms_tcpip6
macOS — commandes pratiques
bashifconfig | grep inet6 # toutes les adresses IPv6
ifconfig en0 | grep inet6 # interface Wi-Fi
networksetup -getinfo Wi-Fi # infos réseau détaillées
ping6 -c 4 ipv6.google.com # test connectivité
traceroute6 ipv6.google.com # traceroute IPv6
dig AAAA +short google.com # DNS AAAA
Mécanismes de transition
Le passage d’IPv4 à IPv6 ne se fait pas du jour au lendemain. Plusieurs mécanismes permettent la coexistence des deux protocoles pendant la période de transition.
Dual-Stack recommandé
L’hôte dispose simultanément d’une adresse IPv4 et d’une adresse IPv6. C’est le mécanisme le plus simple et le plus répandu. Les FAI français déploient massivement le dual-stack.Tunneling 6in4
Encapsulation des paquets IPv6 dans des paquets IPv4. Utilisé pour relier deux îlots IPv6 à travers un réseau IPv4. Protocole 41 dans l’en-tête IPv4.6to4 / Teredo
Mécanismes automatiques de tunneling.6to4 utilise le préfixe 2002::/16. Teredo (Windows) encapsule dans UDP. Déconseillés en production — à désactiver si non utilisés.
NAT64 / DNS64
Permet à des clients IPv6-only de contacter des serveurs IPv4-only. Le routeur NAT64 traduit les paquets. Utilisé par certains opérateurs mobiles.DS-Lite
Dual-Stack Lite — utilisé par les FAI qui manquent d’IPv4. Le client a une IPv6 native et partage une IPv4 publique via un tunnel AFTR chez le FAI (cas Free et certains opérateurs).Happy Eyeballs
Algorithme RFC 8305 implémenté dans les navigateurs et OS modernes. Tente IPv6 et IPv4 en parallèle, choisit le plus rapide. Transparent pour l’utilisateur.Sécurité
Si votre pare-feu ne filtre que le trafic IPv4, les connexions IPv6 peuvent passer en clair. Vérifiez que vos règles
ip6tables / nftables / Windows Firewall couvrent aussi IPv6.
Bonnes pratiques
- Activer les Privacy Extensions (RFC 4941) — génère des Interface IDs temporaires aléatoires pour éviter le tracking à partir de l’adresse MAC.
- Filtrer ICMPv6 avec précaution — ICMPv6 est indispensable au fonctionnement d’IPv6 (NDP, PMTU…). Ne jamais bloquer ICMPv6 en totalité.
- Désactiver les tunnels inutilisés — Teredo, 6to4, ISATAP peuvent créer des vecteurs d’attaque si non surveillés.
- Sécuriser le NDP (Neighbor Discovery Protocol) — équivalent d’ARP en IPv4, vulnérable au spoofing. Utiliser RA Guard et SEND sur les équipements qui le supportent.
- Surveiller les adresses link-local — toutes les interfaces en ont une, même sans configuration explicite. Elles peuvent être utilisées pour la communication locale.
Privacy Extensions (Linux)
bashsysctl net.ipv6.conf.all.use_tempaddr # 0=désactivé, 1=préférence statique, 2=préférence temporaire (recommandé)
sysctl -w net.ipv6.conf.all.use_tempaddr=2
IPsec est nativement intégré à la spécification IPv6 (RFC 4301). En pratique, son usage reste optionnel, mais il est nativement supporté par tous les systèmes modernes — ce qui simplifie la mise en place de VPN et de communications chiffrées de bout en bout.
Tester votre connectivité IPv6
Services en ligne pour vérifier si votre connexion supporte IPv6 :
| Service | URL | Ce qu’il teste |
|---|---|---|
| test-ipv6.com | test-ipv6.com | Test complet IPv4/IPv6, score de préférence |
| ipv6-test.com | ipv6-test.com | Détection IPv6, score et détails FAI |
| icanhazip.com | icanhazip.com | IP publique (IPv4 ou IPv6 selon préférence) |
| ipv6.google.com | ipv6.google.com | Accès Google en IPv6 uniquement |
| whatismyipv6.com | whatismyipv6.com | Affiche l’adresse IPv6 publique |
Depuis le terminal
bash# Obtenir son IPv6 publique
curl -6 icanhazip.com
curl -6 https://api64.ipify.org
# Vérifier si un domaine a un enregistrement AAAA
dig AAAA +short frimousse.net
# Tester la connectivité IPv6 vers Google
ping6 -c 4 ipv6.google.com