Aller au contenu
English
Cloud medium

IPv6 dans le cloud : activation, dual-stack et bonnes pratiques

9 min de lecture

Le danger d'IPv6 dans le cloud n'est pas de mal le configurer, c'est de l'avoir activé sans le savoir. Plusieurs fournisseurs attribuent un préfixe IPv6 d'office à vos sous-réseaux, et vos règles de pare-feu, écrites pour IPv4, ne filtrent alors que la moitié de la surface exposée. Cette page explique ce qui change vraiment avec IPv6, comment vérifier ce qui est actif chez vous, et pourquoi le NAT n'a plus de raison d'être.

  • Lire une adresse IPv6 sans se perdre dans les deux-points.
  • Vérifier si IPv6 est déjà actif sur vos réseaux, souvent à votre insu.
  • Comprendre pourquoi le NAT disparaît, et ce que cela change pour la sécurité.
  • Écrire des règles de filtrage qui couvrent les deux protocoles.
  • Décider s'il faut activer IPv6 sur votre projet, et à quel moment.

La leçon sur l'adressage et celle sur la sécurité réseau.

Une adresse IPv6 tient sur 128 bits, notés en hexadécimal par groupes de quatre séparés par des deux-points. Trois règles de lecture suffisent pour ne plus être impressionné.

  1. Les zéros de tête d'un groupe se suppriment : 2001:0db8:0000:0001 s'écrit 2001:db8:0:1.
  2. La plus longue suite de groupes nuls se remplace par ::, une seule fois dans l'adresse : 2001:db8:0:0:0:0:0:10 devient 2001:db8::10.
  3. Le préfixe se note comme en IPv4, avec une barre oblique : 2001:db8:1::/64.

Le /64 est la taille standard d'un sous-réseau, et ce n'est pas une convention arbitraire : l'autoconfiguration des machines suppose que les 64 derniers bits leur sont réservés. Découper plus finement casse ce mécanisme, ce qui est la première erreur que commettent les habitués d'IPv4, tentés d'économiser des adresses.

Il n'y a rien à économiser : un seul /64 contient plus d'adresses que l'intégralité d'IPv4.

IPv6 n'est pas IPv4 avec des adresses plus longues, c'est un protocole distinct qui cohabite avec lui. Les deux tournent en parallèle sur les mêmes machines, ce qu'on appelle la double pile, et une machine peut être joignable par l'un et pas par l'autre.

IPv4IPv6
Taille de l'adresse32 bits128 bits
Adresses privées10.x, 172.16-31.x, 192.168.xadresses locales uniques en fc00::/7, dont fd00::/8 en pratique
NATomniprésent, par nécessitéinutile, chaque machine peut être publique
Attribution aux machinesDHCPautoconfiguration, ou DHCPv6
Diffusion généralebroadcastremplacé par du multicast

La disparition du NAT est le changement qui a le plus de conséquences, et il faut le comprendre correctement : le NAT n'était pas une mesure de sécurité, c'était un contournement de la pénurie d'adresses. Il avait un effet de bord protecteur, en rendant les machines injoignables par défaut.

Avec IPv6, cet effet de bord disparaît. Une machine peut porter une adresse publique routable, et plus rien ne la protège en dehors de votre pare-feu. Ce n'est pas moins sûr, à condition que le filtrage soit réellement écrit. C'est beaucoup moins sûr si vous comptiez sans le savoir sur le NAT.

Beaucoup d'équipes découvrent IPv6 en lisant la sortie d'une commande, pas en l'ayant décidé. Le lab de la leçon sur les sous-réseaux en donne un exemple : la création d'un réseau privé chez Scaleway retourne un préfixe IPv6 que personne n'a demandé.

lab-public 10.20.1.0/24, fdba:fde8:9c04:f111::/64
lab-prive 10.20.2.0/24, fdba:fde8:9c04:20a4::/64

Ces préfixes commencent par fd, ce sont donc des adresses locales uniques, l'équivalent IPv6 du 10.0.0.0/8 : elles ne sont pas routables sur Internet. Le risque décrit plus haut ne s'applique donc pas à ce cas précis, et il s'appliquerait immédiatement à un préfixe global.

C'est exactement le genre de distinction qu'il faut savoir faire, et elle tient au premier caractère de l'adresse.

Début de l'adresseNatureRoutable sur Internet
2000::/3, donc 2 ou 3adresse globaleoui
fdadresse locale uniquenon
fe80lien-local, propre à l'interfacenon

Chaque règle de filtrage doit exister en double tant que vous êtes en double pile. Il n'y a pas de raccourci, et l'oubli ne produit aucune erreur.

Les notations à connaître, en regard :

IntentionIPv4IPv6
Depuis n'importe où0.0.0.0/0::/0
Une machine précise203.0.113.10/322001:db8::10/128
Un sous-réseau10.20.1.0/242001:db8:1::/64

Notez que le /128 joue en IPv6 le rôle du /32 en IPv4 : il désigne une seule adresse.

La réponse honnête dépend de qui vous servez, et elle n'est pas « oui » par principe.

Activez-le si vous exposez un service au grand public, en particulier mobile : plusieurs opérateurs mobiles fonctionnent en IPv6 avec traduction, et un accès IPv6 direct améliore la latence pour ces visiteurs.

Reportez-le si vous construisez une infrastructure interne et que votre équipe débute : la double pile double la surface de configuration, donc le nombre d'erreurs possibles, et le bénéfice est nul si personne ne vous joint en IPv6.

Dans tous les cas, ne le laissez pas actif sans le savoir. Le pire état est celui où IPv6 fonctionne, où personne ne l'a décidé, et où le filtrage ne le couvre pas. Décidez, puis appliquez votre décision explicitement, dans un sens comme dans l'autre.

  • Un /64 par sous-réseau : découper plus finement casse l'autoconfiguration, et il n'y a rien à économiser.
  • Le NAT disparaît, et avec lui l'isolement gratuit dont beaucoup d'architectures dépendaient sans le dire.
  • Le premier caractère dit tout : 2 ou 3 pour une adresse routable, fd pour une adresse locale, fe80 pour un lien-local.
  • Une règle IPv4 ne filtre aucun trafic IPv6. Chaque règle doit exister en double en double pile.
  • ::/0 est l'équivalent de 0.0.0.0/0, et /128 celui de /32.
  • Testez avec curl -4 puis curl -6. Un filtrage asymétrique ne se voit pas autrement.
  • Ne subissez pas IPv6. Activez-le ou désactivez-le explicitement, mais décidez.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn