IPv4 en notation IPv6
Les quatre façons dont une adresse IPv4 apparaît dans IPv6 – et pourquoi aucune d’entre elles n’est « votre adresse IPv6 ».
Essayez 8.8.8.8, 192.168.1.1 ou 127.0.0.1.
Une adresse IPv4 n’a pas d’équivalent en IPv6. Les adresses IPv6 sont attribuées par votre fournisseur, elles ne se déduisent pas de ce que vous avez déjà. Ce qui suit, ce sont quatre notations différentes qui intègrent une adresse IPv4, chacune avec son usage — aucune n’est une adresse que vous pourriez inscrire dans un enregistrement DNS en espérant qu’elle fonctionne.
IPv4 mappée
Actuelle::ffff:203.0.113.5
C’est ainsi qu’une socket double pile présente un pair IPv4 à une application qui ne connaît que l’IPv6. Vous en verrez dans les journaux des serveurs sur les machines double pile : une ligne ::ffff:203.0.113.5 est une connexion IPv4 ordinaire, et non une connexion IPv6. Cela s’écrit aussi ::ffff:cb00:7105.
Compatible IPv4
Obsolète::203.0.113.5
Un mécanisme de transition des débuts, rendu obsolète par le RFC 4291 en 2006 et plus implémenté nulle part. Il figure ici parce qu’on le croise encore dans de vieilles documentations et de vieux fichiers de configuration, où il faut le considérer comme un défaut plutôt que le recopier.
Préfixe 6to4
Obsolète2002:cb00:7105::/48
Un tunnel automatique qui donnait à tout hôte disposant d’une IPv4 publique un /48 d’espace IPv6. Rendu obsolète par le RFC 7526 : il reposait sur des relais publics dont personne ne garantissait la qualité, et produisait des connexions qui échouaient d’une manière que l’utilisateur ne pouvait pas diagnostiquer.
NAT64 / préfixe bien connu
Uniquement dans un réseau NAT6464:ff9b::203.0.113.5
C’est ainsi qu’un client uniquement IPv6 atteint un serveur uniquement IPv4 via une passerelle NAT64. Le mécanisme est réel et actuel, mais n’a de sens qu’à l’intérieur d’un réseau qui en exploite une : sur l’Internet ouvert, l’adresse ne signifie rien.
L’adresse elle-même
- Décimale pointée
- 203.0.113.5
- Hexadécimale
- 0xCB007105
- Entier 32 bits
- 3 405 803 781
- Binaire
- 11001011.00000000.01110001.00000101
● Documentation — TEST-NET (RFC 5737) — réservée aux exemples. Publiable sans risque, jamais routée.
La prémisse est souvent fausse, et ce n’est pas grave
La plupart des gens qui cherchent un convertisseur IPv4 vers IPv6 cherchent une chose qui n’existe pas : une fonction qui prendrait l’adresse qu’ils ont et renverrait l’adresse IPv6 qu’ils devraient utiliser. Cette fonction n’existe pas. Les adresses IPv6 sont attribuées — votre fournisseur d’accès ou d’hébergement vous remet un bloc pris dans celui qu’on lui a remis — et non calculées à partir d’une IPv4 que vous possédez déjà.
Ce qui existe, en revanche, ce sont plusieurs notations qui placent une adresse IPv4 dans la syntaxe IPv6, chacune inventée pour une tâche précise. Savoir laquelle est laquelle est réellement utile, car vous les croiserez dans des journaux et des fichiers de configuration. Prendre l’une d’elles pour « votre adresse IPv6 » ne l’est pas.
Celle que vous verrez vraiment
::ffff:203.0.113.5 — la forme mappée depuis IPv4 — représente la quasi-totalité des occurrences réelles. Elle apparaît quand un programme écoute sur une socket IPv6 et qu’un client IPv4 se connecte : le système d’exploitation présente le pair sous cette forme pour que l’application n’ait qu’un seul type d’adresse à gérer.
La conséquence pratique mord à deux endroits. Une analyse de journaux qui attend des quadruplets pointés ne reconnaîtra pas ces lignes. Et une liste d’autorisation qui compare des chaînes ne fera pas correspondre ::ffff:203.0.113.5 à 203.0.113.5 — une règle qui a l’air correcte, qui passe la relecture, et qui ne se déclenche jamais, en silence. Normalisez avant de comparer.
Ce que sont les autres
Compatible IPv4 (::203.0.113.5) était une idée de transition des débuts, rendue obsolète par le RFC 4291 en 2006 et implémentée par rien d’actuel. Si vous en trouvez une dans un fichier de configuration, c’est un défaut, pas un choix.
6to4 (2002::/16) donnait à quiconque disposait d’une IPv4 publique un /48 d’IPv6 automatique, tunnelisé par des relais publics. Rendu obsolète par le RFC 7526 en 2015 : les relais n’avaient aucun exploitant responsable, et les pannes étaient de la pire espèce — intermittentes, lentes, et impossibles à diagnostiquer pour un utilisateur.
NAT64 (64:ff9b::/96) est actuel et sert tous les jours. Les opérateurs mobiles, en particulier, exploitent des réseaux uniquement IPv6 et traduisent en bordure : c’est ainsi qu’un téléphone uniquement IPv6 atteint des services uniquement IPv4. C’est bien réel, mais c’est une propriété d’un réseau dans lequel vous êtes, pas une adresse que vous pouvez distribuer.
Pourquoi les deux protocoles ne peuvent pas simplement se parler
La question est légitime après trente ans de transition. La réponse est qu’IPv6 n’est pas IPv4 avec des adresses plus longues : c’est un protocole différent, avec un en-tête différent, et un routeur qui traite l’un n’a aucun moyen d’acheminer un paquet de l’autre. Il n’y a nulle part, dans un en-tête IPv4, où loger une adresse de 128 bits.
Chaque chemin entre les deux exige donc quelque chose au milieu : un hôte double pile qui parle les deux, un traducteur comme NAT64, ou un proxy qui termine une connexion et en ouvre une autre. C’est toute la raison de la lenteur de la transition, et de ce que la réponse pratique à « comment prendre en charge IPv6 ? » soit presque toujours « faites du double pile » plutôt que « convertissez quelque chose ».
À voir aussi
Pour savoir par quel protocole vous atteignez réellement Internet, le vérificateur d’IP indique la famille d’adresses qu’a empruntée votre connexion. Pour découper en sous-réseaux l’adresse dont vous disposez, le calculateur de sous-réseaux couvre le côté IPv4.
Les questions auxquelles cette page est là pour répondre
Quel est l'équivalent IPv6 de mon adresse IPv4 ?
Il n’y en a pas, et c’est la chose la plus importante de la page. Les adresses IPv6 sont attribuées par celui qui fournit votre connectivité : elles proviennent de votre FAI ou de votre hébergeur, à partir d'un bloc qui leur est alloué. Vous ne pouvez pas en déduire un à partir d’une adresse IPv4 que vous possédez déjà, pas plus que vous ne pourriez déduire un numéro de téléphone à partir d’une adresse postale. Les notations ici intègrent une adresse IPv4 dans la syntaxe IPv6 à des fins techniques spécifiques, ce qui est une autre chose.
Pourquoi le journal de mon serveur affiche-t-il ::ffff:203.0.113.5 ?
Parce que le socket écoute sur IPv6 et que la connexion est arrivée via IPv4. Un socket double pile représente les homologues IPv4 de l'application sous cette forme mappée IPv4, de sorte que le code ne doit gérer qu'un seul type d'adresse. Il s'agit d'une connexion IPv4 ordinaire. Si vous analysez des journaux ou faites correspondre des adresses à une liste verte, supprimez d'abord le préfixe ::ffff: : le traiter comme une adresse distincte est une source courante de règles qui échouent silencieusement à correspondre.
Dois-je utiliser une adresse 6to4 ?
Le numéro 6to4 était un mécanisme de tunneling automatique qui donnait à tout hôte disposant d'une adresse IPv4 publique un /48 d'espace IPv6 via le préfixe 2002::/16. Il a été formellement obsolète par la RFC 7526 en 2015 car il reposait sur des routeurs de relais publics dont personne n'était responsable, produisant des connexions lentes ou interrompues d'une manière que les utilisateurs ne pouvaient pas diagnostiquer. Si vous avez besoin d'IPv6, obtenez-le auprès de votre fournisseur ou utilisez un courtier de tunnel avec un opérateur responsable.
A quoi sert 64:ff9b:: ?
Il s'agit du préfixe bien connu pour NAT64, défini dans la RFC 6052. Un client IPv6 uniquement qui doit atteindre un serveur uniquement IPv4 envoie à 64:ff9b:: avec l'adresse IPv4 intégrée dans les trente-deux derniers bits ; une passerelle NAT64 sur le chemin traduit. Il est actuel et largement déployé, notamment par les opérateurs de téléphonie mobile exploitant des réseaux uniquement IPv6. Cependant, cela ne signifie que tout ce qui se trouve à l'intérieur d'un réseau qui exploite une telle passerelle ; l'adresse n'est pas routable sur Internet ouvert.
Les hôtes IPv4 et IPv6 sont-ils capables de communiquer directement entre eux ?
Non. Il s’agit de protocoles distincts avec des formats de paquets différents, et il n’y a pas d’interopérabilité directe – c’est précisément la raison pour laquelle la transition a pris trente ans. La communication entre eux nécessite toujours quelque chose entre les deux : un hôte double pile qui parle les deux, un traducteur tel que NAT64 ou un proxy qui termine l'un et génère l'autre. C'est aussi pourquoi « convertir simplement l'adresse » n'est une solution à rien.
Dernière vérification . Vous avez repéré quelque chose de dépassé ? Dites-le-nous.
