FredVoyage

IPv6

Depuis 1980, les adresses IP ressemblent à ça : 185.177.44.200

C'était l'Internet Protocol version 4. Avec un total de 4.3 milliards d'adresses IP, il est très facile de comprendre que dans un monde avec 7 milliards d'individus, qui utilisent en occident, plus d'une adresse IP par personne (chaque ordinateur et chaque mobile a besoin d'une adresse IP, mais aussi chaque appareil connecté, ce qui rend le nombre d'adresse nécessaire de plus en plus grand), le nombre total d'adresse IP en version 4 est insuffisant.

En 2011, le dernier bloc d'IPv4 a été assigné, et en été 2022, le RIPE, l'organisme qui assigne les adresses IP en Europe, a assigné le dernier bloc libre. Les nouveaux blocs proposés aux nouveaux entrants sont actuellement plus petits (256 IP au lieu de 1024 IP) et ne sont pas assignés directement mais via une liste d'attente, ce qui peut prendre plusieurs mois.

En 1998, l'Internet Protocol version 6 est proposé. Avec un ensemble sur 128 bits au lieu de 32, ce sont 4.3 milliards puissance 4.3 milliards d'adresses disponibles (64 bits assigné généralement par ordinateur) avec autant d'adresse disponible sur chaque terminal, ce qui rend l'assignation bien plus simple et moins coûteuse. Ce protocol, en constante amélioration, permet d'accéder à 25% des sites internet en moyenne en France (chiffres ARCEP 2022), mais ce sont plus de 80% des opérateurs fixes et mobiles français qui fournissent une IPv6 à leurs clients.

Cette version 6 a beaucoup d'avantages par rapport à la version 4, même si l'un des principaux freins à l'adoption de masse est le fait qu'il faut mettre à jour l'ensemble du réseau en activant ce protocole, ce qui, pour certains, a un coût.

Ecriture des adresses IPv6

Pour bien comprendre le principal avantage de l'IPv6, commençons par regarder comment s'écrit une adresse en IPv6 :

2000:1234:5678:9abc:1234:5678:9abc:def0 / 128

Les adresses disponibles au niveau global d'internet commencent toutes actuellement par le chiffre 2. On peut aussi écourter l'adresse, en utilisant cette notation pour l'IP :

2000:1234:0000:0000:0000:0000:0000:abcd / 128

On remplace les blocs complets de chiffres 0 par 2 groupes de 2 points, donc l'ensemble des blocs de 0 sont remplacés par "::", ce qui donne :

2000:1234::abcd / 128

On sait alors que entre le début et la fin de l'adresse, tous les blocs entre les "::" sont des blocs de chiffres 0.

Si un bloc commence par un ou plusieurs 0, on peut simplement ne pas les noter, sauf si tous les chiffres sont à 0, dans ce cas, il faut en conserver un. Par exemple l'adresse :

2001:0000:0045:ab00:0000:0000:0000:0001 / 128

pourra se noter :

2001:0:45:ab00::1 / 128

C'est une habitude à prendre, pour bien comprendre comment écrire ces adresses, mais cela permet de mieux comprendre l'adresse en elle-même et de mieux la lire.

Répartition des adresses IPv6

L'ensemble des adresses IPv6 est gérée par l'Internet Assigned Numbers Authority (IANA). Cet organisme assigne les adresses IPv6 aux autorités régionales comme le RIPE pour l'Europe, ou l'ARIN pour l'Amérique. La liste complète des allocations se trouve ici.

Ce sont les IPs publiques qui sont assignées par l'IANA, c'est à dire l'ensemble 2000::/3 dont une grande partie reste réservée à un usage futur (par exemple l'ensemble des IP 3000::/4 est toujours réservé). En fait, moins de 10% des adresses IPv6 disponibles ont été assignées à une autorité régionale, qui, elle-même, n'a pas encore assigné toutes les IP aux organismes qui les utilisent.

L'IANA va assigner en général des /12 aux autorités régionales, qui vont ensuite assigner des /24 à /32 aux organismes qui les utilisent, suivant leurs besoins. On aura ainsi des IPv6 qui seront assignées par réseaux de différentes tailles, sachant que c'est une adresse en /64 qui est assigné à chaque ordinateur.

Par exemple, chez HaiSoft, nous avons reçu le réseaux d'IPv6 2a0a:2f80::/29.

Nous l'avons ensutie divisé en 8, avec 2a0a:2f81::/32 sur notre datacenter à Tours où se trouve le site que vous lisez actuellement.

Ensuite, nous avons assigné les 32 bits suivants (2 blocs de 16 bits) de telle sorte à avoir une IP en /64 par serveur, ce qui fait l'adresse 2a0a:2f81:f2ed::1/64 sur le serveur qui héberge le site fredvoyage.fr, et il est alors possible d'utiliser toutes les IP de 2a0a:2f81:f2ed:0000:0000:0000:0000:0001 à 2a0a:2f81:f2ed:0000:ffff:ffff:ffff:ffff sur le serveur.

Le fonctionnement normal de l'IPv6 permet au routeur d'assigner non pas une IP, mais un préfix à un ordinateur. C'est comme cela que ça fonctionne à partir d'une box internet. On ne va pas utiliser le DHCP pour attribuer une IP à l'ordinateur. A la place, la box va fournir un préfix, généralement /64 ou parfois plus important (chez Orange, c'est un /56) et ce préfix va servir à déterminer l'adresse IP de l'ordinateur.

L'ordinateur reçoit le préfix, il a alors 2 possibilités. Soit il va assigner une adresse IP aléatoire, qui va changer environ toutes les heures. Il va vérifier en assignant l'IP, que cette IP n'existe pas déjà sur le réseau, et va l'utiliser jusqu'à ce que l'ordinateur change de réseau ou soit éteint. Toutes les heures, une nouvelle IP est créée, l'ancienne IP étant toujours utilisable. Cela permet d'assurer une meilleure sécurité à l'utilisateur, et de rester un minimum anonyme.

Une autre possibilité, suivant le réglage de l'ordinateur, sera de créer une adresse IP unique selon le processus EUI-64 (Extended Unique Identifier sur 64 bits). Les 64 premiers bits sont utilisés par le préfixe fourni par le routeur, et les 64 bits suivants sont assignés à partir de l'adresse MAC de la carte réseau (qui sera différent suivant l'accès, Wifi ou Ethernet par exemple).

Pour obtenir l'adresse IP, on prend l'adresse MAC qui est sur 48 bits, par exemple 52:54:00:f7:e4:d7. On sépare cette adresse en 2 parties de 24 bits chacuns, 52:54:00 et f7:e4:d7 et on insère le code suivant entre les 2 : FFFE, ce qui donne ; 52:54:00:ff:fe:f7:e4:d7
Dernière modification, on va inverser le 7ème bit en partant de la gauche, ce qui donnera alors 52:54:00:ff:fe:f7:e4:d7, et avec le préfixe de ce serveur, on aurait alors :
2a0a:2f81:f2ed:0000:5054:ff:fef7:e4d7

Adresses IPv6 réservées

Jusqu'à maintenant, nous avons parlé des adresses IP publiques, toutefois il existe certaines adresses IPv6 qui ne sont pas publiques :

  • localhost, ou bien 127.0.0.1 en IPv4 devient ::1 en IPv6
  • des adresses IPv6 sont utilisées localement, comme les adresses 192.168.1.1 en IPv4, il s'agit du réseau fc00::/7, qui est en fait utilisable sur la plage fd00::/8
  • des adresses link local, utilisées localement entre un routeur et un ordinateur, équivalent aux link-local en IPv4 écrite sous la forme 169.254.0.0/16 et qui correspond à la plage fe80::/64 généralement avec une adresse utilisant l'EUI-64, utilisée généralement en plus d'une IP publique sur une interface

Sur mon ordinateur en local, j'utilise des IP locales, notée fd00::1 et fd00::100 notamment pour accéder à des machines virtuelles sur le même ordinateur, car le routage d'IP publiques sur un réseau virtuel pose un certain nombre de problèmes, puisqu'elle doit utiliser le préfixe qui n'est pas toujours disponible et change suivant les connexions.

Activation de l'IPv6

Maintenant que vous savez comment écrire les IPv6 et comment cela fonctionne, il faut l'activer. Rien de plus simple : il suffit de cocher la case IPv6 sur la box, et sur la connexion internet de l'ordinateur. Généralement, dans le cas d'un ordinateur ou d'un mobile, l'IPv6 est activée par défaut, vous disposez donc certainement déjà d'une adresse IPv6 pour accéder à ce site, sauf si vous l'avez volontairement désactivé.

J'aime bien comparer l'IP à l'évolution globale de la société, et l'IPv4, c'est pour l'internet des boomers, l'IPv6, c'est pour l'internet des millennials, Il n'y a qu'un pas pour ne pas devenir ringard !