Difference between revisions of "MOOC:Compagnon Act41-s6"

From Livre IPv6

(Où en est IPv4 ?)
(Où en est IPv4 ?)
Line 17: Line 17:
  
 
L'Internet vit depuis des années en situation de pénurie d'adresses. Cette pénurie d'adresses a été prédite dès le milieu des années 1990, peu après la naissance du web. Des mesures ont été prises pour ralentir la consommation des adresses. La première mesure a été de retenir une méthode plus efficace d'attribution des adresses IPv4 en s'appuyant sur des longueurs de préfixe réseau de taille variable. Ce changement connu sous le nom de CIDR (''Classless Inter-Domain Routing'') n'était pas suffisant. Il fallait toujours une adresse IP par noeud se connectant à l'Internet. La seconde mesure a été de restreindre l'attribution des adresses aux noeuds par une allocation temporaire et non plus permanente. Ceci revient plus exactement à partager dans le temps une adresse IP entre plusieurs noeuds. Ce partage des adresses a validé le constat qu'il y a bien une pénurie d'adresses dans l'Internet. En pratique, le partage des adresses IPv4 a été possible avec l'introduction d'un nouveau mécanisme : le NAT (''Network Address Translation'')[RFC 2663] et le recours à l'adressage privé [RFC 1918], comme le préfixe <tt>192.168.0.0/16 </tt>largement utilisé dans les accès des particuliers. Un ensemble de noeuds derrière le NAT et identifié par l'adressage privé se partage une ou plusieurs adresses IP globales (aussi appelés adresses publiques). Le NAT est une fonction de la "box" que chacun possède pour accéder à Internet.  Le NAT remplace dynamiquement les adresses privés par des adresses globales dans un sens et inversement dans l'autre sens. Lorsque qu'il n'y a qu'une simple adresse IP globale de disponible, la correspondance entre une adresse privée et l'adresse globale nécessite d'utiliser le numéro de port. Dans ce cas, en plus de traduire l'adresse, le NAT change aussi le numéro de port.<br>
 
L'Internet vit depuis des années en situation de pénurie d'adresses. Cette pénurie d'adresses a été prédite dès le milieu des années 1990, peu après la naissance du web. Des mesures ont été prises pour ralentir la consommation des adresses. La première mesure a été de retenir une méthode plus efficace d'attribution des adresses IPv4 en s'appuyant sur des longueurs de préfixe réseau de taille variable. Ce changement connu sous le nom de CIDR (''Classless Inter-Domain Routing'') n'était pas suffisant. Il fallait toujours une adresse IP par noeud se connectant à l'Internet. La seconde mesure a été de restreindre l'attribution des adresses aux noeuds par une allocation temporaire et non plus permanente. Ceci revient plus exactement à partager dans le temps une adresse IP entre plusieurs noeuds. Ce partage des adresses a validé le constat qu'il y a bien une pénurie d'adresses dans l'Internet. En pratique, le partage des adresses IPv4 a été possible avec l'introduction d'un nouveau mécanisme : le NAT (''Network Address Translation'')[RFC 2663] et le recours à l'adressage privé [RFC 1918], comme le préfixe <tt>192.168.0.0/16 </tt>largement utilisé dans les accès des particuliers. Un ensemble de noeuds derrière le NAT et identifié par l'adressage privé se partage une ou plusieurs adresses IP globales (aussi appelés adresses publiques). Le NAT est une fonction de la "box" que chacun possède pour accéder à Internet.  Le NAT remplace dynamiquement les adresses privés par des adresses globales dans un sens et inversement dans l'autre sens. Lorsque qu'il n'y a qu'une simple adresse IP globale de disponible, la correspondance entre une adresse privée et l'adresse globale nécessite d'utiliser le numéro de port. Dans ce cas, en plus de traduire l'adresse, le NAT change aussi le numéro de port.<br>
La figure 1 représente le cumul des adresses IPv4 consommées et l'effet des mesures de réduction de consommation des adresses.<ref>Huston, G (2013). APNIC Labs. [http://labs.apnic.net/?p=335 A Primer on IPv4, IPv6 and Transition]</ref>. Les adresses IPv4 sont exprimées par le préfixe de longueur 8 bits. Cette figure montre bien une diminution du taux de consommation des adresses IP4. Du temps était ainsi gagné pour promouvoir une solution définitive. Mais le développement de l'Internet dans la teléphonie mobile et l'accès ADSL ont accéléré la pénurie. Le graphique de droite de la figure 1 montre que depuis 2011, la pénurie est aigüe avec cette chute du taux de consommation des adresses.
+
La figure 1 représente le cumul des adresses IPv4 consommées et l'effet des mesures de réduction de consommation des adresses.<ref>Huston, G (2013). APNIC Labs. [http://labs.apnic.net/?p=335 A Primer on IPv4, IPv6 and Transition]</ref>. Les adresses IPv4 sont exprimées par le préfixe de longueur 8 bits. Cette figure montre bien une diminution du taux de consommation des adresses IP4. Du temps était ainsi gagné pour promouvoir une solution définitive. Mais le développement de l'Internet dans la teléphonie mobile et l'accès ADSL ont accéléré la pénurie. Le graphique (c) de la figure 1 montre que depuis 2011, la pénurie est aigüe par cette chute du taux de consommation des adresses.
  
[[Image:addripv4.png|300px]] [[Image:addripv4-2.png|300px]] [[Image:41-fig27I.png|300px]]<br>
+
 +
{| border="0" cellspacing="2"
 +
! [[Image:addripv4.png|300px]] <br> (a)
 +
! [[Image:addripv4-2.png|300px]] <br>(b)
 +
|-
 +
! colspan="2" |  [[Image:41-fig27I.png|300px]] <br>(c)
 +
|}
 
Figure 1: Cumul de consommation des adresses IPv4 et taux de consommation.
 
Figure 1: Cumul de consommation des adresses IPv4 et taux de consommation.
  

Revision as of 06:35, 16 September 2015

> MOOC>Contenu>Séquence 4 > Activité 41



I/ Déployer IPv6 maintenant

Généralement, l'identification d'une killer application est recherchée pour justifier un passage rapide vers IPv6. Ce fut le cas avec IPv4 quand le Web est apparu. Les sites sont massivement passés de protocoles propriétaires (IPX, NETBUI) vers IPv4 pour accéder aux informations par un navigateur, ce qui a conduit au concept d'intranet. On ne connaît pas actuellement d'application particulière pouvant forcer massivement le passage vers IPv6. Les fonctionnalités avec IPv4 sont les mêmes, puisqu'il ne s'agit que d'une nouvelle version du protocole IP. La qualité de service est souvent évoquée, mais il s'agit d'un leurre, car les mécanismes de réservation ou de différenciation sont pris en charge par les deux versions du protocole. Il n'y a pas une fonctionnalité qu'aurait IPv6 qui ne soit pas dans IPv4. Il peut y avoir des simplifications apportées comme dans la configuration d'un réseau. Mais ce genre d'avantage ne justifie pas le coût de la migration d'IPv4 vers IPv6. Les raisons poussant au passage à IPv6 ne sont pas à chercher de ce coté là mais trouvent leurs origines dans les limitations d'IPv4.

Il n'y a plus de préfixe réseau disponible, ni, a fortiori, d'adresse. Or, l'adresse est un élément indispensable à la connectivité au réseau. Sans adresse, un noeud est invisible, il ne peut rien recevoir ni envoyer, et rend toute communication impossible. La demande de connectivité à Internet, autrement dit d'adresses, loin de diminuer, va au contraire s'accélérer dans les prochaines années avec les nouvelles applications telles que la domotique et la route intelligente. Ces dernières impliquent une masse importante d'objets numériques connectés. Ces applications se développent en IPv6, car IPV4 n'a pas les capacités pour les supporter. Il n'est pas adapté pour interconnecter la multitude des composants numériques : son plan d'adressage à 2^32, soit environ 4.3 milliards d'adresses, est trop restreint. Il n'aurait même pas assez d'adresses pour chaque être humain sur la planète, même si l'allocation d'adresses était parfaite.
Cette taille insuffisante du plan d'adressage n'est pas due à une erreur des concepteurs d'IPv4 mais provient du progrès technologique. Le paradigme de l'ordinateur a beaucoup évolué depuis les années 60. Au début, il y avait un ordinateur par organisation. Puis il y a eu un ordinateur par département. Ensuite, l'arrivée de la micro-informatique a amené un ordinateur par personne. Enfin, avec la généralisation du numérique dans divers objets du quotidien, on en arrive à plusieurs ordinateurs (ou objets connectés) par personne. L'espace d'adressage IPv4 de l'Internet est devenu insuffisant et n'est plus capable de répondre au besoin d'interconnexion des ordinateurs. IPv6 vise justement à répondre à ce changement. De plus, IPv6 possède quelque chose que IPv4 n'a plus, c'est le principe fondamental de bout en bout. Ce principe a été perdu avec le changement de l'architecture de l'Internet entraîné par le manque d'adresses, comme nous allons le voir. Pour les applications et l'extensibilité du réseau, ce principe peut tout changer. La véritable motivation du passage à IPv6 se situe à ce niveau : avoir un Internet adapté à l'informatique d'aujourd'hui.


Où en est IPv4 ?

L'Internet vit depuis des années en situation de pénurie d'adresses. Cette pénurie d'adresses a été prédite dès le milieu des années 1990, peu après la naissance du web. Des mesures ont été prises pour ralentir la consommation des adresses. La première mesure a été de retenir une méthode plus efficace d'attribution des adresses IPv4 en s'appuyant sur des longueurs de préfixe réseau de taille variable. Ce changement connu sous le nom de CIDR (Classless Inter-Domain Routing) n'était pas suffisant. Il fallait toujours une adresse IP par noeud se connectant à l'Internet. La seconde mesure a été de restreindre l'attribution des adresses aux noeuds par une allocation temporaire et non plus permanente. Ceci revient plus exactement à partager dans le temps une adresse IP entre plusieurs noeuds. Ce partage des adresses a validé le constat qu'il y a bien une pénurie d'adresses dans l'Internet. En pratique, le partage des adresses IPv4 a été possible avec l'introduction d'un nouveau mécanisme : le NAT (Network Address Translation)[RFC 2663] et le recours à l'adressage privé [RFC 1918], comme le préfixe 192.168.0.0/16 largement utilisé dans les accès des particuliers. Un ensemble de noeuds derrière le NAT et identifié par l'adressage privé se partage une ou plusieurs adresses IP globales (aussi appelés adresses publiques). Le NAT est une fonction de la "box" que chacun possède pour accéder à Internet. Le NAT remplace dynamiquement les adresses privés par des adresses globales dans un sens et inversement dans l'autre sens. Lorsque qu'il n'y a qu'une simple adresse IP globale de disponible, la correspondance entre une adresse privée et l'adresse globale nécessite d'utiliser le numéro de port. Dans ce cas, en plus de traduire l'adresse, le NAT change aussi le numéro de port.
La figure 1 représente le cumul des adresses IPv4 consommées et l'effet des mesures de réduction de consommation des adresses.[1]. Les adresses IPv4 sont exprimées par le préfixe de longueur 8 bits. Cette figure montre bien une diminution du taux de consommation des adresses IP4. Du temps était ainsi gagné pour promouvoir une solution définitive. Mais le développement de l'Internet dans la teléphonie mobile et l'accès ADSL ont accéléré la pénurie. Le graphique (c) de la figure 1 montre que depuis 2011, la pénurie est aigüe par cette chute du taux de consommation des adresses.


Addripv4.png
(a)
Addripv4-2.png
(b)
41-fig27I.png
(c)

Figure 1: Cumul de consommation des adresses IPv4 et taux de consommation.

Cependant, la solution du NAT rend la connectivité Internet coûteuse et complexe. De plus, elle introduit un état dans le réseau qui fragilise la robustesse du système de communication. Il convient ici de ne pas oublier qu'un principe fondateur de l'Internet est de rendre le fonctionnement de l'infrastructure de communication indépendante du fonctionnement des producteurs et consommateurs de données. Ce principe connu sous le nom de "bout en bout" a conduit à définir le service réseau en mode non connecté. Aucune marque ou état issu d'une communication ne se matérialise dans le réseau : tout est indiqué dans le paquet. On parle d'unité de transfert auto-descriptive. L'en-tête du paquet comporte toutes les informations pour aller de la source à la destination.
Le NAT est en complète contradiction avec ce principe. Le paquet n'est plus auto-descriptif de la source à la destination, car chaque passerelle NAT traversée modifie les informations de l'acheminement du paquet. On peut considérer que chaque NAT traversé conduit à constituer un tronçon du chemin pour atteindre la destination. C'est cette succession de tronçons qui devient le chemin de la source à la destination. On peut voir que d'une infrastructure de communication de bout en bout, l'Internet a évolué vers une infrastructure de communication devant gérer des changements de tronçons. Or, ces changements de tronçons demandent des états complexes à gérer en mode non connecté, ce qui rend le système fragile. En effet, une panne d'un NAT suffit à interrompre toutes les communications le traversant, ce qui n'est pas le cas quand cela arrive à un routeur. Certes, des solutions existent à base de redondances de NAT pour maintenir la disponibilité de ce dispositif. Ces solutions sont coûteuses et complexes à mettre en oeuvre et ne constituent pas le cas courant.

L'introduction du mécanisme NAT a changé l'architecture de l'Internet : il n'y a plus de bout en bout [RFC 2993]. La conséquence est que déployer des nouveaux services ou des nouveaux protocoles de transport est devenu quasi impossible. Car, non seulement NAT change l'adresse IP, mais il modifie souvent aussi le numéro de port situé au niveau de la couche de transport, ce qui a pour conséquence de figer les protocoles de transport actuels. L'ajout d'un nouveau protocole de transport nécessite de mettre à jour le code de tous les NAT en activité, ce qui représente une opération quasi impossible du fait de la diversité des NAT et de leur nombre. Cette idée de rigidification de l'Internet est nommée par le terme d'"ossification".
Le modèle d'interaction se trouve aussi d'une certaine manière rigidifié. Dans le modèle d'interaction client-serveur, les clients qui sont derrière le NAT peuvent s'accommoder de partager une simple adresse IP. Il en est tout autrement pour les serveurs qui ont besoin d'une adresse IP qui leur soit propre afin d'être contactés. Ainsi, ce changement architectural de l'Internet l'a transformé petit à petit en un système minitel. Il est composé de clients et de serveurs. Les possédants d'un adressage public ont ainsi un avantage pour promouvoir leur service. Une certaine forme de contrôle des services est ainsi donnée aux hébergeurs et opérateurs. La conséquence de cette évolution est qu'il est très difficile pour un utilisateur derrière un NAT d'offrir un service. Il en est de même pour les applications de type pair-à-pair (comme la téléphonie sur IP, les jeux répartis,...) qui sont devenues terriblement complexes pour contourner les difficultés introduites par le NAT pour les connexions entrantes [RFC 5128]. De fait, l'innovation dans ce type d'application est d'une certaine manière réduite. Le NAT est le composant qui participe à limiter l'apparition de nouveaux acteurs et à maintenir une certaine forme de rente pour les acteurs en place.
Enfin, certains ont vu dans le NAT un élément de sécurité d'un réseau local dans la mesure où le NAT agit comme un filtre en bloquant les paquets entrants non sollicités. Les attaques sont de nos jours dans le contenu au niveau de l'application comme les chevaux de Troie ou les codes malveillants (malware) dans les pages Web. Le NAT n'améliore donc pas la sécurité car il n'apporte aucune protection contre ces attaques [2].Le RFC 4864 montre comment avoir le même niveau de sécurité qu'un NAT en IPv6 sans en reprendre les inconvénients.

La pénurie d'adresses ne faisant que s'aggraver avec le temps, on en arrive à la situation que les adresses publiques ne sont plus suffisantes pour être attribuées aux opérateurs eux-mêmes. Ainsi, certains opérateurs, par manque d'adresses publiques, ont recours au NAT444, encore appelée technique du "double NAT". Le réseau de l'opérateur est lui-même en adressage privé. Ainsi, le client de l'opérateur n'a même plus une adresse publique. Le NAT du client final se retrouve à faire un passage d'un adressage privé à un autre adressage privé. D'un point de vue de la terminologie, le NAT du client est dorénavant qualifié de NAT44 pour un changement d'adressage de derrière (le coté client) à devant (le coté opérateur) cet équipement.

Pour illustrer la situation de l'adressage dans l'Internet IPv4, la figure 2 représente sous forme d'un histogramme l'état des allocations [3]. Cet histogramme est composé de 256 barres indiquées par la valeur du premier octet de l'adresse d'IPv4 (notée ici "/8"). Pour la même valeur du premier octet est alors indiqué l'état de l'usage des 3 autres octets. Cette figure montre qu'il ne reste quasiment plus rien à allouer (en vert). Les RIR (Regional Internet Registries) sont sur leur réserve. Ils allouent maintenant les dernières adresses sous des conditions draconiennes : nous arrivons bien à la fin d'IPv4. Le déploiement des super NAT ou NAT444 pose de nombreux problèmes. Par exemple, il était complexe pour un client d'un opérateur d'héberger un serveur derrière un NAT44, mais ceci devient maintenant impossible derrière un NAT444. Les RFC 5684 et RFC 7021 dressent d'ailleurs une liste des ennuis apparus par l'introduction des NAT444. La seule solution a toutes ces complexités réside au passage d'IPv6 pour sortir enfin de la pénurie.

Fig05.png
Figure 2: Etat du plan d'adressage IPv4 en 2015

Motivations à IPv6

C'est en partant du constat des limitations et des problèmes induits par l'utilisation d'IPv4 que les motivations à l'adoption d'IPv6 apparaissent. Il faut aujourd'hui un grand espace d'adressage et le passage à IPv6 devient donc une nécessité. Ainsi, en attribuant une adresse à chaque noeud du réseau, la connectivité en IPv6 retrouve les principes qui ont fait le succès du fonctionnement de l'Internet et notamment celui du bout-en-bout. La technologie de l'infrastructure de communication retrouve sa simplicité originelle. Il n'est pas soutenable que la croissance du réseau s'effectue avec une complexité croissante comme avec IPv4. Tout ceci est bien connu et cette évolution est qualifiée "par non passage au facteur d'échelle" (no scalable). Ainsi, avec cette simplicité retrouvée, de nouveaux champs d'application s'ouvrent à l'Internet en IPv6. Le RFC 7368 IPv6 Home Networking Architecture Principles en donne une illustration avec la domotique.
En plus de la simplicité retrouvée, IPv6 en apporte de nouvelles comme dans la configuration d'un réseau. Avec IPv6, le réseau peut se gérer uniquement au niveau des routeurs, les stations construisant leurs adresses automatiquement, alors qu'avec IPv4, chaque équipement doit se voir attribuer une adresse et obtenir sa configuration depuis un serveur qui reste à gérer. Pour les réseaux avec un grand parc de machines, c'est d'autant plus intéressant.
Geof Huston dans l'article[4] ajoute un autre argument liè à la sécurité dans l'Internet des objets. Comme un balayage de l'espace d'adressage IPv4 prend 5 minutes, un objet peut être victime d'une action pirate. Alors qu'en IPv6, l'espace d'adressage étant si grand, il est impossible de balayer tout un réseau pour trouver les adresses utilisées, ce qui rend les noeuds quasiment indétectables. En effet, il faut 41000 ans en IPv6 pour balayer une adresse /64. Cette caractéristique sur la taille rend IPv6 indispendable pour l'Internet des objets car elle rend les objets indétectables par un simple sondage, tout en les laissant accessibles. En vérité, le RFC 5157 montre que cette affirmation n'est pas si vraie. Les adresses IPv6 peuvent être attribuées selon des conventions d'adressage comme utiliser l'identifiant 1 pour le routeur. Des balayages malins peuvent débusquer les noeuds dans un réseau. Dissimuler les adresses IP des noeuds est de la sécurité par l'obscurité : cela peut ralentir l'attaquant, mais cela ne doit certainement pas être utilisé comme unique moyen de défense, car, tôt ou tard, l'attaquant trouvera ces adresses. Il n'en reste pas moins que le balayage est bien plus facile et rapide en IPv4 qu'en IPv6.

Où est est IPv6 ?

Depuis le premier RFC sur IPv6 publié en décembre 1995, la version IPv6 a quitté les laboratoires. L'étape de standardisation des protocoles de base de IPv6 (core specs) est achevée depuis le début des années 2000.

Une adresse IP s'utilise dans l'infrastructure de communication mais également dans les applications des systèmes d'extrémités. Dans la communication, l'adresse IP a un double rôle : localisation et identification. Comme la pénurie d'adresses IPv4 est prévue depuis longtemps, et puisque IPv6 a été conçu très tôt dans cette phase de pénurie, les fabricants et développeurs ont eu le temps de fournir des matériels compatibles IPv6, si bien qu'aujourd'hui, tous les équipements informatiques comportent IPv6. Les systèmes d'exploitation de tous les équipements terminaux (PC, stations de travail, imprimantes, etc.), comme ceux des périphériques intermédiaires (commutateurs, routeurs, etc.) disposent d'une pile IPv6 aisément configurable. Ceux-ci s'intègrent à un Internet v6 comme les équipements IPv4 ont pu s'intégrer à leur époque dans l'Internet v4. Il n'y a pas de réelle difficulté à faire fonctionner des équipements en IPv6 comme le note le RFC 6586. Tant qu'il s'agit d'acheminer des paquets en utilisant les adresses IPv6, il a été démontré que les traitements de niveau réseau fonctionnent sans problème. Les difficultés commencent à apparaître quand des autres fonctions, comme la sécurité ou dans la couche applicative, utilisent des adresses IP comme un identificateur codé sur 32 bits. Les fabricants n'ont pas toujours appliqué des procédures de test complètes ni pu valider les équipements en IPv6. Cela est dû à un marché encore de taille modeste bien qu'en croissance. Cela devient plus compliqué pour les logiciels propriétaires ou pour les logiciels anciens dont le code source n'est pas disponible. Tout ceci n'est pas un gros problème en soi, mais c'est le risque de multiplication qui va rendre la tâche de migration délicate. C'est actuellement un facteur bloquant pour le déploiement massif d'IPv6.

En 2015, l'usage d'IPv6 vu par les serveurs de Google est proche de 7%. La figure 3 montre l'évolution des usages[5]. Cette courbe montre un doublement de l'adoption d'IPv6 tous les ans depuis 2010. Les utilisateurs de Google peuvent émettre des requêtes en IPv6 si ils ont un accès IPv6 offert par leur fournisseur Internet.

Google.png
Figure 3: Evolution du pourcentage de requêtes reçues en IPv6 par Google

Le figure 4[6] montre le pourcentage des organisations annonçant un préfixe IPv6. L'Europe, de manière générale, est active dans le déploiement d'IPv6.

Ipv6-usable.png
Figure 4: Evolution du pourcentage d'organisations annonçant au moins un préfixe IPv6 par région


L'adoption d'IPv6 est aussi une question de formation. Le protocole IPv6 n'est plus au stade expérimental : il est indispensable pour un fonctionnement normal de l'Internet. Nous entendons par "normal", un fonctionnement respectant les principes fondateurs de l'Internet, dont celui du bout-en-bout. Si les principes de ces deux versions de IP sont très similaires, IPv4, nous venons de le voir, adopte de plus en plus des principes non conventionnels pour continuer de fonctionner. L'apprentissage du fonctionnement de l'Internet doit se faire de nos jours principalement avec IPv6, et accessoirement avec IPv4. Il faut rendre banale la nouvelle version du protocole IP. Nous espérons que ce cours y contribue.

Bien que IPv6 soit une technologie mature, le déploiement de l'Internet v6 reste encore limitée. Néanmoins, son usage devient de plus en plus pressant. Non seulement l'Internet continue de grandir, mais de nouveaux usages et de nouveaux équipements apparaissent, ne faisant qu'accélérer sa croissance. Cela a été écrit, IPv4 n'est pas capable de répondre à ce défi. Et pourtant, le principal frein au passage à IPv6 est de se satisfaire de la situation présente. Le coût du passage à IPv6 constitue un investissement qui comme tout investissement s'amortit dans le temps et fournit un retour. Maintenir IPv4 ne produit qu'une dépense sans aucun espoir de retour. Comment procéder pour réaliser cet investissement ? C'est ce que nous allons étudier par la suite.

Quel scénario pour le déploiement ?

Nous avons vu dans les séquences précédentes les détails de la technologie de communication liée à IPv6. Nous avons pu constater que le format des paquets et des adresses sont différents de ceux d'IPv4, et ces différences font que ces deux versions d'IP ne peuvent interopérer. L'internet actuel fonctionne en IPv4 mais il a besoin d'IPv6 pour continuer sa croissance. Quelle que soit la version d'IP utilisée, l'objectif est de maintenir une connectivité globale. Se pose alors le problème de la coexistence des deux versions. Plus exactement, le monde IPv6 doit intégrer des mécanismes afin qu'il puisse interopérer avec l'Internet version 4. Comme il n'y aura pas de jour du grand basculement d'IPv4 à IPv6, l'introduction d'IPv6 dans l'Internet s'effectuera de façon progressive et en s'étalant dans le temps. Elle doit même se faire sans que l'utilisateur puisse s'en apercevoir. La phase de transition doit être simple, ou, au minimum, moins compliquée qu'une utilisation prolongée d'IPv4. La migration doit se focaliser sur les nouveaux réseaux tout en laissant les anciens fonctionner sous IPv4. L'apparition d'IPv6 ne signifie pas que IPv4 cesse d'exister. En effet, la base d'équipements et de logiciels installés est tellement importante que cela assure au protocole IPv4 une durée de vie quasi "illimitée" à l'échelle humaine. Ceci rend l'idée de la migration sans fin. En fait, c'est notamment au travers des extensions du réseau actuel qu'IPv6 viendra suppléer IPv4. Cet objectif de déployer IPv6 tout en laissant fonctionner IPv4 est rappelé dans le RFC 7381, qui décrit la démarche pour le déploiement d'IPv6 dans un réseau administré.

Cette idée d'un protocole visant à soulager IPv4 est marquée par le terme d'intégration. Le terme de transition, lorsqu'il est utilisé, porte l'idée du remplacement d'IPv4 par IPv6. Cette idée est plus anxiogène car elle annonce une migration d'un système de communication qui fonctionne pour aller vers un système plus inconnu. Le but du maintien d'IPv4 en activité est aussi d'éliminer la peur de détruire quelque chose qui fonctionne. De plus dans le contexte actuel d'un Internet en IPv4, déployer IPv6 ne signifie pas que le réseau ne doit utiliser qu'IPv6. Au contraire, le déploiement d'IPv6 doit s'intégrer dans le réseau actuel et être vu comme une extension du réseau présent. La suite de ce document va présenter les types de mécanismes d'intégration, leurs principes et leurs limites.

Principes des mécanismes d'intégration

Ainsi, IPv6 doit se déployer sans remettre en cause l'existant, qui est opérationnel. Mais que faut il faire pour passer son réseau en IPv6 ? En fait, il n'y a pas une solution unique, mais plusieurs réponses qui dépendent de la place occupée par IPv6 dans le système de communication. Il faut distinguer la bordure (les hôtes) et l'infrastructure de communication. L'infrastructure de communication traite du transport des données. Les hôtes sont les consommateurs et producteurs de données ou de manière classique les clients et les serveurs. La distinction entre hôte et réseau conduit à identifier six cas :

  1. Un hôte IPv4 qui communique avec un hôte IPv4 via un réseau IPv4 ;
  2. Un hôte IPv6 qui communique avec un hôte IPv6 via un réseau IPv6 ;
  3. Un hôte IPv6 qui communique avec un hôte IPv6 via un réseau IPv4 ;
  4. Un hôte IPv4 qui communique avec un hôte IPv4 via un réseau IPv6 ;
  5. Un client IPv4 qui communique avec un serveur IPv6 ;
  6. Un client IPv6 qui communique avec un serveur IPv4.

Chaque cas pose un problème particulier qui demande un mécanisme dédié. En contrepartie, chaque mécanisme de transition introduit une complexité supplémentaire dans le réseau. Ces mécanismes dits de transition n'ont pas pour vocation d'exister durablement. Ils devraient décroître dans le temps en fonction du nombre d'équipements IPv6 présents sur le réseau. Ils servent à rendre le coût du déploiement supportable en partant des composants existants. Les nouvelles applications comme par exemple la domotique pourraient directement démarrer en IPv6 nativement et se passer des mécanismes de transitions.


Double pile

Le premier cas exprime le point de départ de la migration, le second cas en représente le point d'arrivée. La première idée pour passer de IPv6 à IPv4 est d'avoir des noeuds qui soient bilingues en quelque sorte, c'est à dire capable de parler en IPv6 ou en IPv4 en fonction des capacités de son correspondant. Pour cela, IPv4 et IPv6 co-existent dans les mêmes noeuds et les mêmes réseaux. Ainsi, les noeuds IPv6 restent compatibles avec les noeuds IPv4. Lorsqu'une nouvelle machine est déployée, elle possède donc une adresse IPv4 et une adresse IPv6. Avec cette idée, la croissance de la taille de l'Internet de ces dernières années aurait été aussi celle d'IPv6. La figure 5 schématise le principe de la communication en double pile. Le déploiement d'IPv6 en double pile était le plan originel de migration. Après la période de spécification que furent les années 90, les années 2000 devaient servir au déploiement des solutions d'intégration. Ainsi, quand le plan d'adressage IPv4 viendrait à épuisement dans la première moitié des années 2010, IPv6 aurait été déployé. Hélas, cette idée n'a pas abouti car elle avait un coût immédiat dû à la double configuration pour un gain futur (à la fin du plan d'adressage IPv4). L'attentisme a régné au niveau du marché et des acteurs comme les fournisseurs d'accès. Ceux-ci n'ont pas montré un réel empressement à déployer une infrastructure en IPv6 pour fournir des préfixes IPv6 afin que leurs clients fonctionnent en double pile. Le déploiement de noeuds double pile a été au final très limité. Nous nous retrouvons maintenant avec deux problèmes à gérer simultanément : l'intégration d'IPv6 et l'épuisement du plan d'adressage IPv4. Il est à noter que les mécanismes qui suivent (tunnel et traduction) reposent sur des machines à double pile. Elles sont capables de communiquer dans les deux protocoles.

Ds.png
Figure 5: Double pile

Tunnel

Les cas 3 et 4 se résolvent à l'aide de tunnel. Le paquet de la source est placé dans une enveloppe qui est en fait un paquet dans la version IP du réseau. Dans le troisième cas, une connectivité IPv6 est offerte au travers d'une infrastructure IPv4 existante comme le représente la figure 6. On parle de câbles virtuels (softwire) : un câble virtuel est un tunnel dans lequel une extrémité du tunnel encapulse les paquets IPv6 dans des paquets IPv4. Les paquets IPv4 transitent dans l'infrastructure IPv4 pour rejoindre l'extrémité du tunnel qui va désencapsuler le paquet IPv6. Le câble virtuel forme une liaison point à point entre 2 noeuds IPv6. IPv4 est alors vu comme un système de transmission comme peut l'être Ethernet ou une liaison Wifi. Le masquage de la topologie du réseau IPv4 à IPv6 peut conduire à faire un routage des paquets IPv6 susceptible d'être sous optimal. Par conséquent, la solution des tunnels doit se faire en essayant de suivre la topologie du réseau et ces tunnels doivent être les plus courts possibles en terme de routeurs IPv4 traversés. Comme les systèmes d'extrémités sont compatibles, la solution à base de tunnel introduit certes une complexité, mais ce n'est pas la plus forte.

Tunnel.png
Figure 6: Tunnel

Traduction

Les deux derniers cas traitent la situation où les extrémités sont incompatibles. Pour certaines catégories d'applications, comme le mail ou le web, le succès d'IPv6 est fortement lié à l'interopérabilité avec IPv4 puisque jusqu'à présent la majorité des informations et des utilisateurs ne sont accessibles qu'avec cette version du protocole. Pour des applications distribuées, la technique de traduction (translation) consiste à rendre possible la communication entre un système IPv6 et un système IPv4 comme indiqué par la figure 7. C'est l'idée du NAT d'IPv4 appliquée à IPv6. Dans le cas du NAT IPv4, le format du paquet reste le même, mais avec IPv6, le format du paquet change en même temps que les adresses. Ainsi, un coté du NAT est en IPv4 et l'autre coté repose sur IPv6.

Cette traduction peut se faire à différents niveaux de l'architecture réseau :

  • au niveau applicatif par des passerelles, ou ALG (Application Level Gateway). Le proxy est un exemple d'ALG qui comporte, en plus des fonctions de traduction, un cache. Le principe d'une traduction par une ALG consiste à ce que le client envoie sa requête en IPv6 à la passerelle applicative. Celle-ci la renvoie vers le serveur en IPv4.
    Dans l'exemple du DNS, ceci se conçoit très facilement. Le resolver du client envoie la requête au serveur local en IPv6. Ce dernier envoie la requête au serveur suivant en IPv4. De même certains protocoles applicatifs, tel le protocole de transfert de courrier SMTP, fonctionnent nativement en mode relais. Le message passe de relais en relais pour atteindre le serveur de courrier de destination. Le relayage s'effectuant au niveau applicatif, chaque saut peut indifféremment s'effectuer en v6 ou en v4. Pour ces applications largement diffusées, comme le web, la messagerie, le DNS ou encore les serveurs d'impression, la traduction est donc relativement simple à faire. On peut également souligner que le web et la messagerie constitue une part significative des flux Internet actuel. Cette méthode de migration devrait permettre de traiter la majorité des flux. Mais sa mise en oeuvre est complexe car l'ALG est très liée à l'application et la multiplication des applications empêche d'avoir une proposition universelle.
  • au niveau réseau avec des mécanismes de traduction d'en-tête. Le paquet IPv4 est construit à partir d'informations déjà contenues dans l'en-tête IPv6, en particulier un format d'adressage particulier permet de véhiculer une adresse IPv4 dans une adresse IPv6. La difficulté d'assurer la compatibilité entre les deux mondes n'est pas symétrique. Il est beaucoup plus facile d'initier une session partant du monde IPv6 pour aller vers le monde IPv4. Autrement dit, il est le plus facile d'avoir le client du coté IPv6 et le serveur du coté IPv4. En effet, un client IPv6 peut gérer une adresse IPv4 (une adresse sur 128 bits peut contenir une adresse sur 32 bits). Dans le sens inverse, c'est plus complexe : le client IPv4 se retrouve à gérer une adresse en 128 bits, et, de plus, il est impossible de modifier l'existant en IPv4.
  • au niveau transport au moyen de relais SOCKS [RFC 1928] ou de relais TRT (Transport Relay Translator) [RFC 3142]. Les relais transport peuvent être perçus comme des "proxys génériques" pour relayer de manière contrôlée les protocoles TCP ou UDP. L'équipement relais accepte les flux ou connexions entrantes issus du client, auprès de qui il se fait donc passer pour le serveur, et les relaie vers le serveur authentique en se faisant passer pour le client. Ce type de solution n'est pas totalement satisfaisante d'un point de vue sécurité car le relais a un comportement de type «Man in the Middle» qui intercepte et éventuellement manipule les flux, y compris les flux sécurisés tels que TLS ou SSH. Ce relais peut en effet négocier une clé intermédiaire lors de l'initialisation de la session sécurisée comme ssh (Secure Shell) et déchiffrer le flux ssh reçu avant de le ré-émettre chiffré avec sa propre clé sur la connexion de sortie. L'attaquant aurait alors tout loisir d'observer le flux en clair. C'est une des limitations importante des passerelles de niveau transport. Quel niveau de confiance peut on accorder à la passerelle transport ? On notera également, que compte tenu de son niveau (transport) le relais bloque les flux de contrôle de niveau réseau (ICMP, ICMPv6). Pour ces raisons, l'usage de relais transport est donc aujourd'hui déconsidéré en faveur des deux autres mécanismes précédents.

Traduction.png
Figure 7: Traduction IPv6-IPv4

Conclusion

L'adoption d'IPv6 dépend des besoins de chacun mais aussi de la hausse du coût généré par la pénurie d'adresses IPv4. Quand ce coût dépasse une valeur admise propre à chaque acteur, la décision du passage à IPv6 s'impose. IPv6 peut s'utiliser dans le réseau de son site : que son réseau de communication soit à construire ou qu'il existe déjà, que la connectivité de son opérateur soit ou non en IPv6. Notons qu'il est envisageable de déployer un intranet en IPv6 tout en laissant les communications avec l'Internet en IPv4. Quoi qu'il en soit, tant qu'il y aura de l'Internet version 4, il faut maintenir cette connectivité depuis le monde IPv6. Donc, en plus du déploiement d'IPv6, il faut installer des éléments pour réaliser cette connectivité.

Pour chaque situation, l'IETF a développé des mécanismes de coexistence. Chaque mécanisme répond à une problématique précise du déploiement d'IPv6 dans un monde IPv4. La migration vers IPv6 ne soulève pas tous les problèmes possibles. Par conséquent, il faut choisir les mécanismes qui s'appliquent à sa situation. Le fait qu'il y ait un choix à faire dans la multitude des mécanismes est même devenu un argument pour ne pas passer à IPv6. Cette multitude renvoie une image de complexité. Il faut comprendre que chaque technique répond à un problème bien précis, et qu'iI n'est pas nécessaire de maitriser toutes les techniques. C'est à partir de l'étude de ses propres besoins qu'il faut identifier lesquelles des techniques sont à appliquer. La démarche consiste, à partir de l'inventaire du réseau IPv4, à se demander ce qui n'est pas compatible IPv6. Dans la situation d'un nouveau réseau IPv6, ce sont les services accessibles uniquement en IPv4 qui vont guider le choix. La question à élucider quelle que soit la situation est la suivante : quels sont les problèmes qui vont apparaitre en utilisant IPv6 ? C'est à partir de ce constat que les techniques de transition vont être retenues. Alors, ce sont ces techniques là qu'il convient d'apprendre et de maîtriser. Par exemple, après une étude de son réseau de communication, l'utilisation d'IPv6 montre un problème sur la connectivité avec l'Internet version 6 car son fournisseur d'accès Internet est resté en IPv4. Un tunnel statique peut être la solution (voir la technique TSP de l'activité 43).

Il convient de garder à l'esprit que la finalité n'est pas d'installer des mécanismes d'intégration. Ces mécanismes sont vus comme temporaires, mais sur une période temporaire qui peut durer. L'objectif final est d'avoir l'Internet en IPv6 partout comme le rappelle le RFC 6180. Le but des mécanismes de coexistence est de faciliter le déploiement progressif et indépendant du protocole IPv6 dans tous les segments du réseau constituant l'Internet. Lorsque cela sera fait, ces mécanismes deviendront obsolètes et leur disparition rendra l'usage d'IPv6 beaucoup plus simple, à l'image d'IPv4 avant l'apparition de son problème de pénurie d'adresses.

La démarche du déploiement d'IPv6 dans un réseau administré d'une organisation est décrite dans le RFC 7381. Ce document suggère 3 phases:

  • une phase de préparation et d'analyse au cours de laquelle l'inventaire de l'existant est effectué afin de déterminer quels sont les matériels et les logiciels fonctionnant en IPv6. Le choix de la phase suivante est aussi décidé en fonction des priorités de l'organisation.
  • une phase interne consistant à déployer IPv6 pour les communications internes.
  • une phase externe dans laquelle il s'agit de traiter la connectivité de son Intranet avec l'Internet.

Plusieurs mécanismes de la migration d'IPv6 sont présentés dans la suite de ce chapitre : le déploiement d'IPv6 dans le réseau local en premier lieu, le maintien de la connectivité entre les ilots IPv6 ensuite, et, pour finir, l'interopérabilité avec les services en IPv4.

Références bibliographiques

  1. Huston, G (2013). APNIC Labs. A Primer on IPv4, IPv6 and Transition
  2. Bortzmeyer, S. (2012) La traduction d'adresses (NAT) apporte-t-elle vraiment de la sécurité ?
  3. Huston, G. IPv4 Address Report
  4. Huston, G. (2015) The ISP Column. The Internet of Stupid Things
  5. Google. Statistics. IPv6 Adoption
  6. RIPE NCC. IPv6 Enabled Networks


Pour aller plus loin

Pénurie d'adresses IPv4

Statistiques sur IPv4

Statistiques sur IPv6

Techniques de transition

Stratégies de migration


RFC et leur analyse par S. Bortzmeyer:

Personal tools