IPv6Le protocole IPv6 n’est plus le protocole de l’avenir: il est en train de devenir le protocole du présent ! mais c’est vrai que ça prend un peu de temps 😉 

Cet article est l’introduction d’une série sur le sujet que l’on pourrait appeler « IPv6 de façon pratique et pragmatique ». Un sujet intéressant pour assouvir la curiosité technologique mais pas seulement: le protocole IPv6 est désormais complètement intégré dans les différents programmes de certifications Cisco. Pour la certification Cisco CCNA, par exemple, la section adressage couvre aussi bien les aspects IPv4 que IPv6: il faut donc être aussi à l’aise dans un environnement que dans un autre !

Mais, avant de commencer les aspects techniques, nous allons commencer par une petite présentation générale. Let’s go!

IPv6 est le successeur d’IPv4 !

Addresses IPv4 ? Épuisement des stocks !

IPv4 est un protocole dont les premières définitions officielles dates de l’année 1980. Aujourd’hui, ce protocole a atteint ses limites, notamment en ce qui concerne les adresses: il n’y a plus d’adresses IPv4 disponibles ! « Plus aucune adresse ? Il fallait en prévoir plus dès le départ !« Nombre d'adresses IPv4 par rapport à la population

L’adresse IPv4 est une valeur codée sur 32 bits: cela fait moins de 4,3 milliards d’adresses possibles !  

A l’époque (1980/1981), cela semblait beaucoup d’adresses puisque cela représentait une adresse IP par habitant (il y avait 4,4 milliards d’hommes sur la Terre).

A cette époque, il n’y avait pas de mobiles, pas de sites web: très peu de personnes n’avait même pas entendu parler de l’Internet ! En 1984, on dépasse le nombre de 1000 systèmes interconnectés sur Internet. On passe à 10.000 machines en 1987 et 100.000 en 1989. C’est en 1992 que l’on dépasse le million d’ordinateurs raccordés à Internet dans le monde puis 19 millions en 1997…  Très rapidement les instances de l’Internet comprennent qu’ils vont être dépassés par le succès de cette technologies. Ils prévoient alors quelques solutions techniques de contournement: un espace d’adressage privatif qui peut être partagé par différentes machines pour limiter le nombre d’adresses IP publiques (avec les mécanismes de translation d’adresses…). Mais il faut une solution pérenne: ce sera un nouveau protocole: IPv6 ! 

Définition du protocole IPv6 dans un RFC

 

D’IPv4 à IPv6, sans passer par la case IPv5 !

La question revient dès qu’on explique l’évolution de l’IPv4 vers IPv6: « et IPv5, alors ? »

Version IP dans l'en-tête du paquet: la valeur 5 est réservée...

Le premier champs de l’en-tête IP correspond au numéro de version du protocole: 4 pour la version courante (IPv4). Seulement, à la fin des années 70, une famille de protocoles expérimentaux a été développée pour prendre en compte les besoins de QoS de certaines applications (comme la voix ou la vidéo). Ces protocoles (ST puis ST2 pour Internet Stream Protocol) étaient encapsulés dans l’IP en indiquant dans le champ « version » la valeur 5.

Ces protocoles n’ont jamais été identifiés comme étant la famille de protocoles IPV5 mais comme la valeur 5 était réservée elle n’a pas pu être attribuée au successeur d’IPv4. Tant pis: celui-ci sera alors le protocole IP dans sa version 6 !

IPv5 ne sera pas utilisé pour éviter la confusion avec ST et ST2

 

Quels sont les avantages d’IPv6 ?

Augmentation du nombre d’adresses disponibles

Evidemment, IPv6 propose un espace d’adressage bien plus conséquent que ne le propose la version 4 d’IP.  L’adresse est une valeur codée sur 32 bits en IPv4 alors qu’elle est codée sur 128 bits en IPv6. 

Cela représente 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses IPv6 (à comparer avec les 4 294 967 296 adresses en IPv4) !!!

Avec de quoi donner 667 132 000 milliards d’adresses par millimètre carré de surface terrestre, on ne devrait pas avoir de limitations dans le futur!

 

Approche Plug&Play

Quitte à changer de protocole pour des raisons de limites d’adressage, autant en profiter pour améliorer ce protocole. C’est pour cela que la version 6 d’IP est repensée avec un concept de configuration automatique (type Plug-and-play). La configuration automatique ne nécessite pas de serveur DHCP (même si l’utilisation de DHCPv6 est également une option possible).

 

Plus besoin de translation d’adresses (NAT/PAT)

exemple de NAT: accès limité vers les machines privées

La translation d’adresses est utilisée en environnement IPv4 pour cacher les systèmes usagers qui accèdent à Internet. Mais cela introduit des problématiques pour certains types d’applications. C’est le cas, par exemple, pour les applications de partage peer-to-peer.

De plus, il apparait que la sécurisation que l’on pouvait associer à la translations d’adresses est très limitée (l’organisme IETF proclame que le NAT n’est pas une fonction de sécurisation)…

 

Meilleur support du concept de mobilité

Les terminaux sont mobiles: il faut adapter les technologies à cette mobilité. Il faut permettre aux systèmes terminaux de conserver la connectivité avec le reste des systèmes indépendamment de ses changements de localisation. IPv6 apporte des solutions pour cet usage.

 

Et la transition, alors ?

Dual-Stack: la solution pour aller vers IPv6 en douceur... Il semble évident que la transition ne peut pas se faire de façon brutale. Il faut prévoir une période de cohabitation des deux protocoles. C’est ce que l’on appelle l’implémentation Dual-Stack  (double-pile en français): les infrastructures, les serveurs et les systèmes terminaux peuvent implémenter la pile IPv4 ET la pile IPv6.

OK. ça, c’est le principe. Mais en pratique ? En pratique, les utilisateurs lambdas n’utilisent pas directement les adresses IP mais uniquement des noms de machines. Par exemple, pour aller sur Internet, l’utilisateur tape dans son navigateur favori l’URL: www.facebook.com

C’est un nom de machine, pas de référence à IP que ce soit en version 4 ou en version 6. Le navigateur doit utiliser les services d’annuaires DNS pour trouver l’adresse IP correspondant à la machine dont le nom est www.google.fr.

C’est donc au système terminal de demander à l’annuaire quelle est l’adresse IPv4 associée à ce nom (techniquement, c’est ce que l’on appelle le A-record DNS) mais également l’adresse IPv6 éventuellement associée (c’est le AAAA-record DNS):

Dual-Stack Implementation 

Ensuite, le navigateur va essayer de récupérer la page d’accueil en IPv6 puis en IPv4: la première réponse reçue est utilisée pour l’affichage dans le navigateur. C’est la solution définie par le RFC 6555 appelée Happy Eyeballs.

 

Il y a d’autres mécanismes de transitions. Notamment pour prendre en compte des équipements ou des infrastructures qui ne supportent pas (et ne supporteront pas IPv6). Mais la cible doit rester l’implémentation d’une pile IPv6 complète… 

Laissez moi vos commentaires et questions dans la zone ci-dessous: c’est fait pour ça !