IPv6, autoconfiguration et coexistence
- Accueil
- Fondations techniques
- Réseaux
- IPv6, autoconfiguration et coexistence
IPv6, autoconfiguration et coexistence
Section intitulée « IPv6, autoconfiguration et coexistence »IPv6 (Internet Protocol version 6) n’est pas une option à activer plus tard : il est déjà actif sur la quasi-totalité des systèmes, qui s’attribuent des adresses et écoutent les routeurs sans rien demander à personne. Cette fiche explique comment lire une adresse IPv6, comment une machine se configure, comment IPv6 cohabite avec IPv4 (Internet Protocol version 4), et comment filtrer, journaliser et protéger un protocole que beaucoup de réseaux hébergent sans le savoir.
Quand une ville ouvre un second réseau de rues à côté de l’ancien, les deux servent en même temps, et chaque carrefour doit être surveillé dans les deux plans. Ce chapitre traite de la nouvelle génération d’adresses des réseaux informatiques, qui cohabite avec l’ancienne et qu’il vaut mieux gérer volontairement plutôt que la découvrir par hasard.
→ Lire l’explication complète de la marmotte
Lire une adresse IPv6
Section intitulée « Lire une adresse IPv6 »Notation et compression
Section intitulée « Notation et compression »Une adresse IPv6 compte 128 bits, écrits en huit groupes de 16 bits en hexadécimal, séparés par deux-points. Deux règles abrègent l’écriture : les zéros de tête de chaque groupe se suppriment, et une seule suite de groupes nuls consécutifs se remplace par ::. Ainsi :
2001:0db8:0000:0000:0000:ff00:0042:83292001:db8:0:0:0:ff00:42:8329 (zéros de tête supprimés)2001:db8::ff00:42:8329 (suite de groupes nuls compressée)Le :: n’apparaît qu’une fois, sinon la longueur de chaque trou deviendrait ambiguë. Le RFC (Request for Comments) 5952 fixe une forme canonique (minuscules, plus longue suite de zéros compressée), mais tous les outils ne la respectent pas : une recherche dans des journaux doit normaliser avant de comparer. Le préfixe 2001:db8::/32 est réservé à la documentation (RFC 3849), d’où sa présence ici.
Préfixe, identifiant d’interface et portées
Section intitulée « Préfixe, identifiant d’interface et portées »Comme en IPv4, la notation /n donne la longueur du préfixe réseau. Le découpage usuel est simple : un site reçoit un /48 ou un /56 de son opérateur, chaque sous-réseau est un /64, et les 64 bits restants forment l’identifiant d’interface. Un /48 découpé en /64 donne 65 536 sous-réseaux : il ne s’agit plus d’économiser, mais de structurer.
Chaque adresse a une portée :
| Type | Préfixe | Portée | Usage |
|---|---|---|---|
| Lien local (link-local) | fe80::/10 | le lien seulement | voisinage, routeur par défaut, protocoles de contrôle |
| Unique local (ULA) | fc00::/7, en pratique fd00::/8 | l’organisation | adressage interne stable |
| Globale (GUA) | 2000::/3 | Internet | trafic routé |
| Multidiffusion | ff00::/8 | variable | ff02::1 tous les nœuds, ff02::2 tous les routeurs |
| Bouclage, non spécifiée | ::1, :: | la machine | tests, adresse source avant configuration |
Toute interface IPv6 active possède une adresse lien local, même sans routeur ; unique seulement sur son lien, elle impose parfois de préciser l’interface : ping fe80::1%eth0. Les adresses unique local (RFC 4193) commencent par fd suivi de 40 bits aléatoires, pour qu’une fusion entre deux organisations ne produise pas de collision.
Unicast, multicast, anycast
Section intitulée « Unicast, multicast, anycast »IPv6 ne connaît plus la diffusion générale (broadcast). Une adresse unicast désigne une interface, une adresse multicast un groupe d’interfaces abonnées, une adresse anycast un service porté par plusieurs interfaces dont la plus proche, au sens du routage, répond. L’anycast n’a pas de préfixe dédié : c’est une adresse unicast annoncée à plusieurs endroits. La résolution d’adresses utilise l’adresse multicast de nœud sollicité ff02::1:ffXX:XXXX, qui reprend les 24 derniers bits de l’adresse cherchée, si bien que seules quelques machines reçoivent la question.
EUI-64 et vie privée
Section intitulée « EUI-64 et vie privée »Historiquement, l’identifiant d’interface se fabriquait à partir de l’adresse MAC (Media Access Control) selon la méthode EUI-64 (Extended Unique Identifier) : couper l’adresse en deux, insérer fffe au milieu, inverser le septième bit. La MAC 00:1a:2b:3c:4d:5e donne l’identifiant 021a:2bff:fe3c:4d5e. Le procédé a un défaut gênant : l’identifiant suit la machine d’un réseau à l’autre, ce qui permet de la pister partout. Le RFC 8064 recommande désormais des identifiants stables mais opaques (RFC 7217), différents pour chaque préfixe, et les systèmes y ajoutent des adresses temporaires (RFC 8981) renouvelées régulièrement pour les connexions sortantes. Un fffe au milieu d’un identifiant trahit un équipement configuré à l’ancienne.
Configurer et coexister
Section intitulée « Configurer et coexister »SLAAC, DHCPv6 et configuration statique
Section intitulée « SLAAC, DHCPv6 et configuration statique »Les routeurs IPv6 émettent périodiquement, et à la demande, des annonces de routeur (Router Advertisement, ICMPv6 type 134), dans le cadre de NDP (Neighbor Discovery Protocol, RFC 4861). Une annonce contient le ou les préfixes du lien, la durée de validité du routeur comme passerelle et deux drapeaux, M (managed) et O (other configuration). Avec SLAAC (Stateless Address Autoconfiguration, RFC 4862), l’hôte combine le préfixe annoncé et son identifiant d’interface, vérifie que personne n’utilise déjà l’adresse (détection de doublon), et installe une route par défaut vers l’adresse lien local du routeur. Aucun serveur ne tient de registre : commode, et peu traçable.
DHCPv6 (RFC 8415, UDP 546 côté client et 547 côté serveur) attribue des adresses avec état, ou seulement des options (serveurs DNS, domaine) en mode sans état. Particularité qui surprend : DHCPv6 ne fournit pas de route par défaut, qui vient toujours des annonces de routeur. Android ne prend pas en charge l’attribution d’adresses par DHCPv6 avec état : un réseau qui compte uniquement sur DHCPv6 laisse ces terminaux sans adresse globale. Les serveurs DNS peuvent aussi être annoncés directement dans les annonces de routeur (option RDNSS, RFC 8106).
La configuration statique reste la règle pour routeurs, serveurs et services publiés.
L’en-tête IPv6 et ses extensions
Section intitulée « L’en-tête IPv6 et ses extensions »L’en-tête de base fait 40 octets fixes : version, classe de trafic, étiquette de flux, longueur de charge, en-tête suivant, limite de sauts, adresses source et destination. Il n’a plus de somme de contrôle, et les routeurs ne fragmentent plus : seule la source fragmente, et chaque lien doit accepter au moins 1 280 octets. La découverte du MTU (Maximum Transmission Unit) du chemin repose donc sur les messages ICMPv6 « Packet Too Big », qu’un filtrage zélé ne doit surtout pas supprimer.
Les options sont reléguées dans des en-têtes d’extension chaînés : saut par saut, routage, fragment, options de destination, AH (Authentication Header) et ESP (Encapsulating Security Payload). Un équipement doit parcourir toute la chaîne pour trouver le port de destination. Le RFC 7112 impose que toute la chaîne figure dans le premier fragment, le RFC 5095 a supprimé l’en-tête de routage de type 0, qui permettait des rebonds et des amplifications, et le RFC 6980 interdit la fragmentation des messages NDP. En pratique, beaucoup de réseaux d’opérateurs écartent les paquets portant des en-têtes d’extension peu courants (RFC 9098) ; une politique raisonnable consiste à autoriser fragment, AH et ESP lorsqu’ils sont utilisés, et à écarter le reste en le journalisant.
Dual-stack, IPv6-only, NAT64 et DNS64
Section intitulée « Dual-stack, IPv6-only, NAT64 et DNS64 »Le dual-stack fait tourner IPv4 et IPv6 côte à côte : chaque machine a des adresses des deux familles, et l’application choisit. Les systèmes préfèrent IPv6 (RFC 6724) et les navigateurs lancent les deux tentatives presque en parallèle (Happy Eyeballs, RFC 8305), ce qui masque une panne IPv6 par un repli silencieux sur IPv4.
Un réseau IPv6-only supprime IPv4 côté clients. Pour joindre les services restés en IPv4, une passerelle NAT64 (RFC 6146) traduit les paquets, et un résolveur DNS64 (RFC 6147) fabrique des réponses AAAA synthétiques en plaçant l’adresse IPv4 dans le préfixe 64:ff9b::/96. La limite tient aux adresses IPv4 littérales, qui ne passent pas par le DNS (Domain Name System) ; le mécanisme 464XLAT (RFC 6877), courant sur les réseaux mobiles, ajoute une traduction locale sur le terminal pour les traiter.
Les tunnels, transition et risque
Section intitulée « Les tunnels, transition et risque »Les tunnels transportent IPv6 dans IPv4 quand le chemin ne le route pas : 6in4 (protocole IP 41) entre deux extrémités configurées, 6rd chez certains opérateurs, et à l’inverse DS-Lite, qui transporte IPv4 dans IPv6. Les mécanismes automatiques 6to4 (dépréciés par le RFC 7526) et Teredo (encapsulation dans UDP port 3544, conçue pour traverser la traduction d’adresses) ont surtout laissé un souvenir : celui d’un trafic IPv6 sortant d’un réseau sous l’apparence d’IPv4 ordinaire, hors de toute politique. Un pare-feu doit bloquer le protocole 41 et Teredo, sauf tunnel explicitement prévu.
Sécuriser IPv6
Section intitulée « Sécuriser IPv6 »Filtrer et journaliser
Section intitulée « Filtrer et journaliser »Un pare-feu IPv6 suit la même logique qu’en IPv4, refus par défaut et ouvertures documentées, avec une différence : ICMPv6 ne se bloque pas en bloc. Le RFC 4890 décrit les messages indispensables : Packet Too Big, Time Exceeded, Parameter Problem, et les messages NDP sur le lien. Sous Linux, une table nftables de famille inet traite les deux protocoles dans les mêmes règles, ce qui évite d’oublier l’un des deux.
Les journaux doivent enregistrer l’adresse complète, et non une forme tronquée. Comme les adresses temporaires changent, il faut aussi conserver les tables de voisinage des routeurs ou les journaux NDP, seule façon de rattacher après coup une adresse à une adresse MAC, donc à une machine.
Les annonces de routeur malveillantes
Section intitulée « Les annonces de routeur malveillantes »N’importe quelle machine d’un segment peut émettre des annonces de routeur. Une seule annonce pirate suffit à devenir passerelle par défaut, voire résolveur DNS, pour tout le segment. La parade est RA Guard (RFC 6105) sur les commutateurs, qui n’accepte les annonces que sur les ports désignés vers les routeurs, complétée par un filtrage équivalent pour DHCPv6. Les implémentations naïves de RA Guard se contournent en cachant l’annonce derrière des en-têtes d’extension ou des fragments (RFC 7113) : il faut vérifier que les commutateurs inspectent toute la chaîne.
Éviter le contournement
Section intitulée « Éviter le contournement »Le scénario classique : un serveur expose SSH (Secure Shell) à tout le monde, le pare-feu IPv4 le restreint, et personne n’a écrit de règle IPv6. Le service est publié par la porte de derrière.
Exemples et ateliers
Section intitulée « Exemples et ateliers »Lire des adresses
Section intitulée « Lire des adresses »| Adresse | Lecture |
|---|---|
fe80::21a:2bff:fe3c:4d5e | lien local, identifiant EUI-64 dérivé de la MAC 00:1a:2b:3c:4d:5e |
fd3a:91c2:7e04:10::25 | unique local, sous-réseau 10, hôte numéroté à la main |
2001:db8:4f00:12:8c3e:51ff:a07b:e2d1 | globale de documentation, identifiant opaque ou temporaire |
ff02::1:ff7b:e2d1 | multicast de nœud sollicité pour l’adresse précédente |
64:ff9b::c000:221 | adresse synthétisée par DNS64 pour l’IPv4 192.0.2.33 |
Observer lien local et route par défaut
Section intitulée « Observer lien local et route par défaut »$ ip -6 addr show dev eth0 inet6 2001:db8:4f00:12:8c3e:51ff:a07b:e2d1/64 scope global temporary dynamic inet6 2001:db8:4f00:12:5a1:2b3c:4d5e:6f70/64 scope global dynamic mngtmpaddr inet6 fe80::5a1:2b3c:4d5e:6f70/64 scope link$ ip -6 route show defaultdefault via fe80::1 dev eth0 proto ra metric 100 expires 1795secTrois adresses, dont une temporaire pour les connexions sortantes, et une route par défaut apprise d’une annonce (proto ra) vers l’adresse lien local du routeur. Sous Windows, route print -6 donne la même information.
Service ouvert en IPv6, filtré en IPv4
Section intitulée « Service ouvert en IPv6, filtré en IPv4 »Symptôme : un balayage externe déclare le port 22 filtré, mais un collègue s’y connecte depuis chez lui.
ss -ltn | grep ':22' # écoute sur 0.0.0.0:22 et [::]:22curl -4 -v telnet://srv.example.net:22 # échec, filtrécurl -6 -v telnet://srv.example.net:22 # bannière SSHnft list ruleset | grep -c 'ip6\|inet' # aucune règle IPv6Le service écoute dans les deux familles, seul IPv4 est filtré. Correction : une règle dans une table inet commune, puis un test dans les deux familles.
Pièges classiques
Section intitulée « Pièges classiques »Désactiver IPv6 sans stratégie casse des fonctions qui l’utilisent en interne (certains services Windows, par exemple, et Microsoft recommande de préférer IPv4 plutôt que de désactiver IPv6), tout en laissant souvent des équipements où il reste actif.
Filtrer IPv4 en oubliant IPv6 produit le contournement décrit plus haut, de façon parfaitement reproductible.
Confondre absence de NAT (Network Address Translation) et absence de pare-feu revient à croire qu’une adresse globale expose forcément une machine. Un pare-feu à états qui refuse les connexions entrantes non sollicitées protège autant qu’en IPv4 ; la traduction d’adresses n’a jamais été un filtre, comme le rappelle la fiche NAT, translations et publication.
À ne pas confondre
Section intitulée « À ne pas confondre »IPv6-only et dual-stack : dans le premier, les clients n’ont plus d’IPv4 et passent par NAT64 pour les services anciens ; dans le second, les deux protocoles circulent en parallèle et doivent être filtrés tous les deux.
SLAAC et DHCPv6 : SLAAC laisse l’hôte fabriquer son adresse à partir d’une annonce, sans registre central ; DHCPv6 attribue et trace, mais ne donne jamais la route par défaut.
Unique local et privé IPv4 : les ULA ressemblent aux plages du RFC 1918, mais elles sont probabilistiquement uniques, coexistent avec des adresses globales et n’appellent aucune traduction. Ni l’une ni l’autre ne protège rien ; c’est le travail du filtrage, détaillé dans Filtrage, segmentation et NAC, et du plan d’adressage, dont la logique est la même qu’en IPv4, CIDR et plans d’adressage.
🐝 Ce qui arrive si on s’en passe
Section intitulée « 🐝 Ce qui arrive si on s’en passe »Un réseau qui laisse IPv6 actif sans le gérer héberge un second réseau que personne ne regarde : les machines s’y attribuent des adresses seules, les services y répondent, et le filtrage conçu pour IPv4 ne s’y applique pas. Une seule annonce de routeur malveillante suffit alors à faire passer le trafic d’un segment entier par une machine hostile, sans toucher à la moindre règle existante. Les tunnels de transition ajoutent des chemins que le pare-feu voit comme du trafic ordinaire. Et lorsque les journaux n’enregistrent que les adresses IPv4, l’enquête après incident perd la trace précisément des échanges qui ont contourné le contrôle.
🦫 Explication de la marmotte 🍫
Section intitulée « 🦫 Explication de la marmotte 🍫 »Chaque machine connectée à un réseau a besoin d’une adresse. L’ancien système d’adressage, IPv4, quatrième version du protocole Internet, n’a plus assez d’adresses pour tout le monde. IPv6, sa sixième version, utilise des adresses beaucoup plus longues, écrites avec des chiffres et des lettres de a à f, et abrégées en supprimant les suites de zéros. Une adresse IPv6 se compose d’un préfixe, qui désigne le réseau, et d’un identifiant, qui désigne l’interface de la machine. Une machine possède souvent plusieurs adresses selon leur portée : une adresse locale au lien, valable seulement sur le câble ou le réseau sans fil auquel elle est reliée, une adresse locale unique pour l’intérieur de l’organisation, et une adresse globale joignable depuis Internet. Pour obtenir ces adresses, la machine peut écouter les annonces que diffusent les routeurs et fabriquer seule son adresse, interroger un serveur de configuration, ou recevoir une adresse fixée à la main. Pendant la transition, les deux versions fonctionnent souvent en parallèle sur les mêmes machines ; des tunnels transportent IPv6 à l’intérieur d’IPv4, et des passerelles traduisent de l’une à l’autre. Le danger vient de là : si le pare-feu filtre IPv4 mais pas IPv6, un service reste accessible par la seconde voie. Une machine malveillante peut aussi envoyer de fausses annonces de routeur et détourner le trafic.
À lire aussi
- Résolution locale, ICMP, MTU et multicastExpliquer les protocoles qui rendent IP utilisable localement et diagnostiquable : ARP, Neighbor Discovery, ICMP, ICMPv6, MTU, fragmentation, multicast et IGMP.
- L'adressage IP en une pagePréfixe, masque, sous-réseaux, plages réservées et différences IPv4/IPv6 : l'adressage IP résumé sur un seul schéma, idées reçues comprises.
- GRE, IPsec ou GRE dans IPsec pour un tunnel site à siteChoisir entre GRE, IPsec et GRE dans IPsec pour relier deux sites, selon le chiffrement, le routage dynamique, le multicast et le coût en MTU.
- DNS, DHCP, NTP : services d'infrastructure réseauComprendre les services qui rendent un réseau administrable : nommage, configuration automatique, synchronisation du temps et dépendances invisibles.
Pages voisines
La citent
- Résolution locale, ICMP, MTU et multicast
- L'adressage IP en une page
- Réseaux spécialisés, sobriété avancée et futurs raisonnables
IPv6, autoconfiguration et coexistence
Elle cite
: les deux pages se citent l’une l’autre.
