Notions d'IPv6 et coexistence avec IPv4
Il y a un fait que la plupart des utilisateurs ignorent : leur ordinateur parle probablement déjà IPv6 en ce moment même, parallèlement à IPv4. Ce nouveau système d'adressage, conçu pour remplacer l'ancien, change quelques habitudes et oblige les défenseurs à penser deux fois. Cette leçon clôt le chapitre sur l'observation du réseau.
Nous avons vu qu'une adresse IPv4 tient sur 32 bits, soit un peu plus de quatre milliards d'adresses possibles. Avec la multiplication des téléphones, objets connectés et serveurs, ce réservoir est épuisé depuis longtemps ; le NAT a permis de gagner du temps, mais n'est qu'un palliatif.
Une adresse sur 128 bits
IPv6 utilise des adresses de 128 bits, ce qui donne un espace gigantesque. On les écrit en huit groupes de quatre chiffres hexadécimaux séparés par deux-points :
2001:0db8:0000:0000:0000:0000:0000:0001
Pour la lisibilité, deux règles de simplification s'appliquent : on peut supprimer les zéros initiaux de chaque groupe, et remplacer une seule fois une suite de groupes nuls par ::. L'adresse ci-dessus devient :
2001:db8::1
La plage 2001:db8::/32 est réservée à la documentation, comme 192.0.2.0/24 en IPv4 : nous l'utilisons dans tous nos exemples.
Préfixes et types d'adresses
IPv6 conserve la logique du préfixe : 2001:db8:1234:5678::/64 signifie que les 64 premiers bits identifient le réseau. Par convention, un réseau local reçoit presque toujours un /64 : les 64 bits restants servent à identifier la machine. Quelques types d'adresses à connaître :
| Type | Préfixe ou valeur | Rôle |
|---|---|---|
| Bouclage (loopback) | ::1 | La machine elle-même (équivalent de 127.0.0.1) |
| Lien local | fe80::/10 | Communication sur le réseau local, obligatoire sur chaque interface |
| Locale unique (ULA) | fc00::/7 | Adressage privé, non routé sur Internet |
| Globale (unicast) | Commence souvent par 2000::/3 | Adresse routable sur Internet |
| Multidiffusion | ff00::/8 | Envoi à un groupe de machines |
Il n'y a plus d'adresse de diffusion (broadcast) en IPv6 : elle est remplacée par la multidiffusion, ce qui évite de solliciter inutilement toutes les machines du réseau.
Ce qui remplace ARP et DHCP
IPv6 apporte ses propres mécanismes :
- La découverte de voisins (NDP, Neighbor Discovery Protocol), reposant sur ICMPv6, remplace ARP : elle permet de trouver l'adresse MAC d'un voisin et de repérer les routeurs. Comme ARP, elle ne comporte pas d'authentification par défaut ; des protections spécifiques existent sur les équipements réseau.
- L'autoconfiguration (SLAAC) permet à une machine de se fabriquer elle-même une adresse à partir du préfixe annoncé par le routeur. Un DHCP pour IPv6 existe aussi, pour une gestion centralisée.
- Le NAT n'est plus nécessaire en IPv6 : chaque machine peut avoir une adresse publique. Attention, cela ne veut pas dire que tout est joignable depuis l'extérieur : c'est le pare-feu qui décide, plus le NAT. C'est un changement de mentalité important.
Au niveau de la vie privée, les systèmes modernes génèrent par défaut des adresses temporaires qui changent régulièrement, pour éviter qu'une adresse fixe ne permette de suivre un appareil à la trace.
Coexistence : la double pile
On ne passe pas d'IPv4 à IPv6 en une nuit. Aujourd'hui, la situation la plus courante est la double pile (dual stack) : chaque machine possède à la fois une adresse IPv4 et une adresse IPv6, et choisit l'un ou l'autre selon ce que le serveur propose (et c'est le DNS qui l'indique : un enregistrement A pour IPv4, un enregistrement AAAA pour IPv6, comme vu au chapitre 1). D'autres mécanismes existent : la traduction entre les deux familles d'adresses, ou l'encapsulation d'IPv6 dans IPv4 (tunnels), souvent utilisés lors de transitions.
Les enjeux de sécurité de la coexistence
Cette coexistence est une source classique d'erreurs, ce qui intéresse directement la sécurité :
- Le pare-feu qui ne filtre qu'IPv4. Un administrateur configure soigneusement ses règles IPv4, mais l'IPv6, activé par défaut sur la plupart des systèmes, n'est pas filtré. Les services deviennent alors joignables en IPv6 alors qu'ils sont protégés en IPv4. C'est le piège le plus courant.
- Les outils de supervision aveugles. Si la journalisation, les scans de vulnérabilités ou les listes de surveillance ne couvrent qu'IPv4, une partie du parc reste invisible.
- Les annonces de routeur frauduleuses. Sur un réseau local, une machine malveillante pourrait annoncer de fausses informations de routage, comme avec ARP en IPv4. Les équipements modernes disposent de protections (filtrage des annonces) à activer.
- Une surface plus vaste. Des adresses globales partout, c'est plus d'exposition potentielle si l'on oublie de filtrer.
La bonne pratique tient en une phrase : soit on gère IPv6 comme IPv4, avec les mêmes politiques de filtrage et de journalisation, soit on le désactive consciemment là où il n'est pas utilisé, mais on ne le laisse pas actif par inadvertance.
Observer IPv6 sur sa machine
Les outils que vous connaissez déjà fonctionnent aussi en IPv6 : ping, traceroute, dig et Wireshark savent tous le gérer. Les commandes ci-dessous vous permettent de vérifier ce que votre propre machine utilise réellement. Notez le résultat dans votre carnet : ce sera utile quand vous configurerez les réseaux de votre laboratoire.
# Afficher les adresses IPv6 (Linux)
ip -6 addr
# macOS, Windows
ifconfig # macOS
ipconfig # Windows
# Tester la boucle locale IPv6
ping -6 ::1 # Linux (ping6 ::1 sur certains systèmes)
# Voir les voisins IPv6 (équivalent ARP)
ip -6 neigh
Dans la sortie, vous devriez voir une adresse fe80::… (lien local) sur chaque interface active, et peut-être une adresse globale ou temporaire si votre fournisseur d'accès propose IPv6.
Astuce. Lorsque vous interrogez le DNS (dig example.com AAAA), vous voyez les adresses IPv6 d'un domaine. Si un site publie un enregistrement AAAA, votre navigateur peut l'atteindre en IPv6 sans que vous ne vous en aperceviez : dans Wireshark, vous le verrez par le filtre ipv6.
À vous de jouer
Exercice 1. Simplifiez l'adresse 2001:0db8:0000:0042:0000:0000:0000:00ab. Combien de groupes pouvez-vous remplacer par :: ?
Exercice 2. Sur votre machine, listez vos adresses IPv6. Laquelle est de type lien local ? Possédez-vous une adresse globale ?
Exercice 3. Capturez avec Wireshark pendant une minute de navigation normale et appliquez successivement les filtres ip et ipv6. Quelle proportion du trafic utilise IPv6 chez vous ?
Voir une solution
Exercice 1. On supprime les zéros initiaux : 2001:db8:0:42:0:0:0:ab. La plus longue suite de groupes nuls (trois groupes consécutifs) devient :: : 2001:db8:0:42::ab. On ne peut utiliser :: qu'une seule fois, sinon l'adresse devient ambiguë, et on ne remplace pas le groupe isolé 0 qui suit db8 lorsqu'une suite plus longue existe.
Exercice 2. L'adresse commençant par fe80:: est de type lien local. Une adresse globale (commençant par 2 ou 3) n'apparaît que si votre réseau et votre fournisseur proposent IPv6.
Exercice 3. Le résultat varie beaucoup selon l'opérateur : certains foyers sont déjà largement en IPv6, d'autres n'en ont pas du tout. Notez votre constat : il montre si vos futures règles de pare-feu doivent couvrir IPv6.
À retenir
- IPv6 utilise des adresses de 128 bits, écrites en hexadécimal et simplifiables (
::une seule fois) ; un réseau local est en général un /64. - Chaque interface possède une adresse lien local (
fe80::/10) ; la plage2001:db8::/32sert à la documentation. - NDP remplace ARP, SLAAC et DHCPv6 distribuent les adresses ; sans NAT, c'est le pare-feu qui protège.
- La double pile (IPv4 + IPv6) est la situation courante ; le DNS indique via A et AAAA ce que propose un serveur.
- Le piège principal : filtrer et surveiller IPv4 en oubliant IPv6. Appliquez les mêmes politiques aux deux, ou désactivez volontairement ce dont vous ne vous servez pas.
Vous savez maintenant lire un trafic, comprendre ses fragilités et concevoir une segmentation. Le moment est venu de construire l'endroit où vous pourrez expérimenter sans risque : votre laboratoire virtuel. C'est l'objet du chapitre suivant.