Chapitre 1214 minDébutant
IPv6 en pratique : adresses, SLAAC, DHCPv6 et découpage en /64
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- lire et abréger une adresse IPv6 ;
- distinguer préfixe et identifiant d'interface, et les types d'adresses ;
- expliquer NDP, SLAAC et DHCPv6 ;
- découper un préfixe en /64 et faire cohabiter IPv4 et IPv6.
5 exercices corrigés1 schéma
IPv6 est la version du protocole IP qui utilise des adresses de 128 bits, écrites en hexadécimal par groupes de 16 bits (2001:db8:4a2c:3710::1a) ; elle offre assez d'adresses pour que chaque appareil ait une adresse publique, sans NAT, et chaque réseau local y reçoit un préfixe /64. Ce chapitre explique comment lire et abréger une adresse IPv6, les types d'adresses, l'autoconfiguration SLAAC, DHCPv6, le protocole NDP qui remplace ARP, et comment découper un préfixe pour une entreprise.
Pourquoi IPv6
IPv4 offre 4,3 milliards d'adresses : le stock est épuisé depuis le début des années 2010 (chapitre 5). Le NAT a prolongé sa vie, au prix d'un Internet où la plupart des machines ne sont pas joignables directement, et de doubles NAT chez les opérateurs mobiles.
IPv6 apporte 2¹²⁸ adresses, environ 3,4 × 10³⁸ : on ne risque plus d'en manquer. Il simplifie aussi plusieurs choses : un en-tête de taille fixe (40 octets), plus de broadcast, l'autoconfiguration des adresses sans serveur, plus de fragmentation par les routeurs.
Les grands opérateurs français fournissent IPv6 sur leurs box et leurs réseaux mobiles, et les grands sites (Google, Facebook, Wikipédia…) répondent en IPv6. Dans une entreprise, on fait le plus souvent tourner les deux protocoles en même temps : c'est la double pile (dual stack). Tu dois donc savoir lire, configurer et dépanner les deux.
Lire une adresse IPv6
Une adresse IPv6 mesure 128 bits, écrits en 8 groupes de 4 chiffres hexadécimaux (16 bits par groupe), séparés par des deux-points :
2001:0db8:4a2c:3710:0000:0000:0000:001a
Pour la raccourcir, deux règles :
- Les zéros en tête de chaque groupe peuvent être omis :
0db8→db8,001a→1a,0000→0. - Une seule suite de groupes entièrement nuls, consécutifs, peut être remplacée par
::.
2001:0db8:4a2c:3710:0000:0000:0000:001a
→ 2001:db8:4a2c:3710:0:0:0:1a (règle 1)
→ 2001:db8:4a2c:3710::1a (règle 2)
La recommandation officielle (RFC 5952) précise l'écriture « canonique », celle qu'affichent les systèmes : chiffres en minuscules ; :: appliqué à la plus longue suite de groupes nuls, à la première en cas d'égalité ; jamais de :: pour un seul groupe nul.
Pour développer une adresse, compte les groupes présents et remplace :: par autant de groupes 0000 qu'il en manque pour arriver à 8. ff02::1:ff3d:4e5f a 4 groupes : le :: en vaut 4, d'où ff02:0000:0000:0000:0000:0001:ff3d:4e5f.
Comme en IPv4, la notation préfixe/longueur indique la partie réseau : 2001:db8:4a2c:3710::/64. Il n'y a pas de masque en décimal pointé en IPv6. Dans une URL, l'adresse se met entre crochets : https://[2001:db8:4a2c:3720::179]/.
La structure d'une adresse : 64 bits pour le réseau, 64 pour l'interface
Une adresse unicast globale se découpe presque toujours ainsi :
- Le préfixe de routage global est délégué par l'opérateur : un /48 pour une grande organisation, un /56 ou un /60 pour une box ou une PME.
- L'identifiant de sous-réseau est choisi par l'organisation : c'est là qu'elle découpe.
- L'identifiant d'interface, les 64 derniers bits, désigne la machine dans le réseau.
Les types d'adresses
| Type | Préfixe | Équivalent IPv4 | Rôle |
|---|---|---|---|
| Unicast globale (GUA) | 2000::/3 (commence par 2 ou 3) | Adresse publique | Routée sur Internet |
| Lien-local (LLA) | fe80::/10 | APIPA, en bien plus utile | Présente sur chaque interface, automatiquement ; valable seulement sur le lien local ; sert à NDP et aux routeurs |
| Unique locale (ULA) | fc00::/7, en pratique fd00::/8 | Adresse privée | Réseaux internes, non routée sur Internet |
| Multicast | ff00::/8 | Multicast, et remplace le broadcast | Groupes : ff02::1 tous les nœuds du lien, ff02::2 tous les routeurs |
| Boucle locale | ::1 | 127.0.0.1 | La machine elle-même |
| Non spécifiée | :: | 0.0.0.0 | Pas encore d'adresse ; ::/0 est la route par défaut |
| Documentation | 2001:db8::/32 (et 3fff::/20 depuis 2024) | 192.0.2.0/24… | Exemples des cours et des livres |
Une interface IPv6 a toujours plusieurs adresses : au moins une adresse lien-local, et en général une ou plusieurs adresses globales (dont des adresses temporaires, voir plus bas). C'est normal, et c'est la première surprise quand on lit un ipconfig.
Il n'y a plus de broadcast. Ce que faisait le broadcast passe par des groupes multicast ciblés : seules les machines concernées traitent le message.
NDP : le voisinage en IPv6
NDP (Neighbor Discovery Protocol) regroupe des messages ICMPv6 qui remplacent ARP et ajoutent la découverte des routeurs :
| Message | Type ICMPv6 | Rôle |
|---|---|---|
| Router Solicitation (RS) | 133 | « Y a-t-il un routeur ? », envoyé par une machine qui démarre, vers ff02::2 |
| Router Advertisement (RA) | 134 | Le routeur annonce sa présence, le préfixe du réseau et la façon de configurer les adresses |
| Neighbor Solicitation (NS) | 135 | « Qui a cette adresse IPv6 ? » : l'équivalent de la requête ARP, envoyé en multicast ciblé |
| Neighbor Advertisement (NA) | 136 | La réponse, avec l'adresse MAC |
| Redirect | 137 | Un routeur signale un meilleur premier saut |
Avant d'utiliser une adresse, une machine vérifie que personne ne l'a déjà, avec un NS sur sa propre adresse : c'est la détection d'adresse dupliquée (DAD).
SLAAC : l'autoconfiguration sans serveur
Avec SLAAC (Stateless Address Autoconfiguration), une machine se configure seule :
- Elle crée son adresse lien-local (
fe80::+ un identifiant d'interface) et vérifie qu'elle est unique. - Elle envoie un RS. Le routeur répond par un RA qui contient le préfixe du réseau (
2001:db8:4a2c:3710::/64) et des drapeaux. - Elle fabrique son adresse globale : le préfixe annoncé + un identifiant d'interface de 64 bits qu'elle génère elle-même.
- Elle prend comme passerelle l'adresse lien-local du routeur qui a envoyé le RA.
L'identifiant d'interface était autrefois dérivé de l'adresse MAC (méthode EUI-64 : la MAC coupée en deux, ff:fe inséré au milieu, un bit inversé). Comme cela permettait de suivre un appareil partout, les systèmes actuels utilisent un identifiant stable mais opaque (RFC 7217) pour l'adresse principale, plus des adresses temporaires aléatoires, changées régulièrement, pour les connexions sortantes (RFC 8981). Repère dans une adresse le motif ff:fe au milieu de l'identifiant : c'est la trace d'un EUI-64, encore fréquent sur les routeurs et les vieux appareils.
DHCPv6 : avec ou sans état
Le RA porte deux drapeaux qui disent aux clients comment compléter leur configuration :
| Drapeau M (Managed) | Drapeau O (Other) | Mode | Adresse | DNS et autres options |
|---|---|---|---|---|
| 0 | 0 | SLAAC seul | SLAAC | Option RDNSS du RA (RFC 8106) |
| 0 | 1 | SLAAC + DHCPv6 sans état | SLAAC | DHCPv6 |
| 1 | — | DHCPv6 avec état | DHCPv6 (et SLAAC si le préfixe l'autorise) | DHCPv6 |
DHCPv6 sans état (stateless) ne distribue que des options (DNS, domaine) : le serveur ne garde aucune trace d'adresse. DHCPv6 avec état (stateful) distribue aussi les adresses et tient un journal des baux, comme en IPv4, ce que demandent certaines organisations pour la traçabilité. DHCPv6 utilise UDP, ports 546 (client) et 547 (serveur), et identifie les clients par un DUID, pas par leur adresse MAC.
Point pratique : certains systèmes, dont Android, n'obtiennent pas d'adresse en DHCPv6 avec état. Sur un réseau de clients variés, on garde donc SLAAC, éventuellement complété par DHCPv6 sans état ; le DHCPv6 avec état est plutôt réservé aux serveurs et aux réseaux maîtrisés.
Découper un préfixe : le plan IPv6 de Sorbier
L'opérateur de Sorbier lui délègue 2001:db8:4a2c:3700::/56. De /56 à /64, il y a 8 bits d'identifiant de sous-réseau : 2⁸ = 256 réseaux /64, de 2001:db8:4a2c:3700::/64 à 2001:db8:4a2c:37ff::/64. Les 8 bits correspondent aux deux derniers chiffres hexadécimaux du 4e groupe.
| Préfixe délégué | Réseaux /64 disponibles |
|---|---|
| /48 | 2¹⁶ = 65 536 |
| /56 | 2⁸ = 256 |
| /60 | 2⁴ = 16 |
| /64 | 1 seul : impossible de découper |
Pour que le plan soit lisible, Sorbier recopie le numéro de VLAN dans l'identifiant de sous-réseau, en l'écrivant tel quel en hexadécimal : VLAN 10 → …:3710::/64. C'est une convention de lisibilité (le « 10 » hexadécimal vaut 16 en décimal), pas une obligation.
| VLAN | Usage | Réseau IPv4 | Réseau IPv6 |
|---|---|---|---|
| 10 | Postes | 192.168.10.64/26 | 2001:db8:4a2c:3710::/64 |
| 20 | Serveurs | 192.168.10.176/28 | 2001:db8:4a2c:3720::/64 |
| 30 | Entrepôt | 192.168.10.128/27 | 2001:db8:4a2c:3730::/64 |
| 40 | Visiteurs | 192.168.10.0/26 | 2001:db8:4a2c:3740::/64 |
| 50 | Téléphonie et caméras | 192.168.10.160/28 | 2001:db8:4a2c:3750::/64 |
Les serveurs reçoivent des adresses fixes, faciles à retenir : srv-ad = 2001:db8:4a2c:3720::177, en reprenant le dernier octet de l'adresse IPv4. Les postes utilisent SLAAC.
Faire cohabiter IPv4 et IPv6
- Double pile : chaque équipement a une adresse IPv4 et une adresse IPv6, le système choisit (il préfère IPv6 quand le nom a un enregistrement AAAA et que ça fonctionne). C'est la méthode normale en entreprise.
- Traduction NAT64 et DNS64 : un réseau 100 % IPv6 accède aux sites restés en IPv4 grâce à une passerelle qui traduit. Les opérateurs mobiles l'utilisent, avec 464XLAT pour les applications qui ne parlent qu'IPv4.
- Tunnels (6in4 et autres) : de l'IPv6 transporté dans de l'IPv4. Utile ponctuellement, en recul.
Les commandes IPv6
| Besoin | Windows | Linux |
|---|---|---|
| Voir les adresses | ipconfig (lignes « Adresse IPv6 », « Adresse IPv6 temporaire », « Adresse IPv6 de liaison locale ») | ip -6 addr |
| Voir les routes | route print -6 | ip -6 route |
| Voir les voisins (cache NDP) | Get-NetNeighbor -AddressFamily IPv6 | ip -6 neigh |
| Tester | ping -6 srv-ad, tracert -6 | ping -6 srv-ad, traceroute -6 |
| Résoudre un AAAA | Resolve-DnsName srv-ad -Type AAAA | dig srv-ad.sorbier.example AAAA |
Exercices
Exercice 1 sur 5 Abréger des adresses Réussi À revoir
Écris chaque adresse sous sa forme la plus courte (forme canonique).
2001:0db8:0000:0000:0000:ff00:0042:8329fe80:0000:0000:0000:0a1b:2cff:fe3d:4e5f2001:0db8:0000:0001:0000:0000:0000:00012001:0db8:0000:0000:0001:0000:0000:00010000:0000:0000:0000:0000:0000:0000:00012001:0db8:0a00:0000:0000:0000:0000:0000
Voir la réponseMasquer la réponse de l'exercice 1
2001:db8::ff00:42:8329fe80::a1b:2cff:fe3d:4e5f2001:db8:0:1::1: la plus longue suite de zéros (3 groupes) est compressée ; le groupe nul isolé s'écrit0.2001:db8::1:0:0:1: deux suites de 2 groupes nuls, de même longueur ; on compresse la première.::1, la boucle locale.2001:db8:a00:::0a00perd seulement son zéro de tête.
Tu avais trouvé ?
Exercice 2 sur 5 Développer et identifier Réussi À revoir
- Développe
2001:db8:4a2c:3710::1aetff02::1:ff3d:4e5fsur 8 groupes de 4 chiffres. - Donne le type de chaque adresse :
fe80::1·fd12:3456:789a:10::1·3fff:cb00:1234:5600::42·ff02::2·::·2001:db8:4a2c:3720::179
Voir la réponseMasquer la réponse de l'exercice 2
2001:0db8:4a2c:3710:0000:0000:0000:001aetff02:0000:0000:0000:0000:0001:ff3d:4e5f.fe80::1: lien-local.fd12:3456:789a:10::1: unique locale (ULA, l'équivalent d'une adresse privée).3fff:cb00:1234:5600::42: unicast globale (commence par 2 ou 3, préfixe2000::/3; ici un préfixe de documentation,3fff::/20).ff02::2: multicast, tous les routeurs du lien.::: non spécifiée.2001:db8:4a2c:3720::179: adresse de documentation (2001:db8::/32), utilisée ici comme globale pour l'exemple.
Tu avais trouvé ?
Exercice 3 sur 5 Découper un /48 Réussi À revoir
Une collectivité reçoit 2001:db8:abcd::/48.
- Combien de réseaux /64 peut-elle créer ?
- Quel est le préfixe du 1er réseau /64 ? Du 26e ?
- Combien d'adresses contient chaque /64 ?
Voir la réponseMasquer la réponse de l'exercice 3
- De /48 à /64 : 16 bits, soit 2¹⁶ = 65 536 réseaux /64.
- Le 1er :
2001:db8:abcd::/64(identifiant de sous-réseau 0). Le 26e a l'identifiant 25, soit0x19en hexadécimal :2001:db8:abcd:19::/64. - 2⁶⁴, environ 1,8 × 10¹⁹ adresses.
Tu avais trouvé ?
Exercice 4 sur 5 Lire un ipconfig Réussi À revoir
Un poste du VLAN 10 de Sorbier affiche :
Adresse IPv6. . . . . . . . . . . . . . : 2001:db8:4a2c:3710:6d1e:8f2a:b43c:9e17
Adresse IPv6 temporaire . . . . . . . . : 2001:db8:4a2c:3710:c58:1af4:27d0:3b62
Adresse IPv6 de liaison locale. . . . . : fe80::6d1e:8f2a:b43c:9e17%12
Adresse IPv4. . . . . . . . . . . . . . : 192.168.10.88
Masque de sous-réseau. . . . . . . . . : 255.255.255.192
Passerelle par défaut. . . . . . . . . : fe80::1%12
192.168.10.126
- Combien d'adresses IPv6 a ce poste, et à quoi sert chacune ?
- Comment a-t-il obtenu son adresse globale ?
- Pourquoi la passerelle IPv6 commence-t-elle par
fe80?
Voir la réponseMasquer la réponse de l'exercice 4
- Trois : une adresse globale stable (pour être joint), une adresse globale temporaire (utilisée pour ses connexions sortantes, pour limiter le pistage) et une adresse lien-local (pour le voisinage et les routeurs).
- Par SLAAC : le préfixe
2001:db8:4a2c:3710::/64vient de l'annonce du routeur, l'identifiant d'interface est généré par Windows (pas deff:feau milieu : ce n'est pas un EUI-64). - Parce qu'en IPv6, la passerelle est l'adresse lien-local du routeur, apprise par les annonces RA.
%12est le numéro de l'interface sur laquelle elle se trouve.
Tu avais trouvé ?
Exercice 5 sur 5 Les drapeaux du RA Réussi À revoir
Le switch de cœur de Sorbier annonce le préfixe 2001:db8:4a2c:3720::/64 dans le VLAN des serveurs avec M = 1, et le préfixe 2001:db8:4a2c:3740::/64 dans le VLAN des visiteurs avec M = 0 et O = 0, plus l'option RDNSS.
- Comment les serveurs obtiennent-ils leur adresse ? Et les visiteurs ?
- Pourquoi ce choix pour chaque VLAN ?
- D'où vient la passerelle des visiteurs ? Leur DNS ?
Voir la réponseMasquer la réponse de l'exercice 5
- Serveurs : par DHCPv6 avec état (M = 1), ou, en pratique, en adresse fixe saisie à la main. Visiteurs : par SLAAC uniquement.
- Les serveurs sont peu nombreux et maîtrisés : on veut des adresses connues et tracées. Les visiteurs ont des appareils de toutes sortes, dont des téléphones Android qui ne gèrent pas DHCPv6 avec état : SLAAC fonctionne avec tous.
- La passerelle vient du RA (l'adresse lien-local du switch de cœur). Le DNS vient de l'option RDNSS du même RA, puisqu'il n'y a pas de DHCPv6.
Tu avais trouvé ?