Difference between revisions of "MOOC:Verb41"
From Livre IPv6
(15 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | <!-- | ||
> [[MOOC:Accueil|MOOC]] > [[MOOC:Contenu|Contenu]] > [[MOOC:Verbatim|Verbatim]] | > [[MOOC:Accueil|MOOC]] > [[MOOC:Contenu|Contenu]] > [[MOOC:Verbatim|Verbatim]] | ||
---- | ---- | ||
+ | --> | ||
+ | __NOTOC__ | ||
+ | = Activité 41 : Communiquer en double pile = | ||
− | + | ==Introduction== | |
− | + | <center> | |
+ | [[image:V41-1.png|400px|thumb|center|]] | ||
+ | </center> | ||
− | + | Le déploiement IPv6 dans un réseau doit se faire selon de bonnes pratiques comme : | |
− | * | + | * Ne pas casser ou perturber ce qui fonctionne en IPv4. IPv6 s'ajoute à l'existant, mais ne remplace pas l'existant. Le déploiement d'IPv6 est un processus progressif, et additionnel. |
− | * | + | * Transparent à l'utilisation ou indolore à l'utilisateur. Ce dernier ne doit constater aucune dégradation du service de communication. |
− | * de | + | * Viser des améliorations en terme, de simplicité, de gestion et de performance du réseau ou, pire, que cette dernière soit équivalente à celle obtenue en IPv4. On doit même constater un meilleur fonctionnement du réseau, afin d'encourager, et de motiver au passage à IPv6. |
− | + | * Maintenir la connectivité avec l'Internet IPv4. IPv6 est une évolution de l'Internet, et ne doit pas être vue comme un moyen de faire un Internet parallèle. | |
+ | Nous allons voir maintenant comment mettre en oeuvre ces bonnes pratiques, avec d'abord la présentation de la technique de la double pile, puis les étapes de déploiement d'IPv6 dans un réseau existant, et enfin les problèmes qui peuvent potentiellement survenir lors de ce déploiement. | ||
− | + | ==Technique de la double pile== | |
− | Le premier mécanisme recommandé | + | <center> |
+ | [[image:V41-2.png|400px|thumb|center|]] | ||
+ | </center> | ||
+ | |||
+ | |||
+ | Le premier mécanisme d'intégration recommandé repose sur la technique dite de la double pile. | ||
Cette technique consiste à configurer à la fois la pile protocolaire IPv4 et la pile protocolaire IPv6 au sein d'un même noeud. | Cette technique consiste à configurer à la fois la pile protocolaire IPv4 et la pile protocolaire IPv6 au sein d'un même noeud. | ||
− | Ainsi le noeud est capable de communiquer dans les 2 versions du protocole IP. | + | Ainsi, le noeud est capable de communiquer dans les 2 versions du protocole IP. |
Il est en quelque sorte bilingue. Il parle le langage de son correspondant : | Il est en quelque sorte bilingue. Il parle le langage de son correspondant : | ||
− | + | ||
* Lorsque l'adresse IP du correspondant appartient à l'espace d'adressage IPv4, la communication s'effectue avec des paquets IPv4. | * Lorsque l'adresse IP du correspondant appartient à l'espace d'adressage IPv4, la communication s'effectue avec des paquets IPv4. | ||
− | |||
* Et quand l'adresse IP du correspondant appartient à l'espace d'adressage IPv6, la communication s'effectue en utilisant IPv6. | * Et quand l'adresse IP du correspondant appartient à l'espace d'adressage IPv6, la communication s'effectue en utilisant IPv6. | ||
− | Lorsque le serveur est lui-même en double pile, le client | + | Lorsque le serveur est lui-même en double pile, le client commencera par une communication en IPv6, Si sa tentative échoue, il basculera sur une communication en IPv4. |
− | Dans le cas d'un routeur, celui-ci possède une table de routage pour chaque version du protocole. Le routeur est ainsi capable de relayer à la fois les paquets IPv6 et IPv4. De cette façon, IPv4 et IPv6 co-existe sur la même infrastructure. Autrement dit IPv6 n'a pas besoin d'une infrastructure dédiée. | + | Dans le cas d'un routeur, celui-ci possède une table de routage pour chaque version du protocole. |
+ | Le routeur est ainsi capable de relayer à la fois les paquets IPv6 et IPv4. | ||
+ | De cette façon, IPv4 et IPv6 co-existe sur la même infrastructure. Autrement dit IPv6 n'a pas besoin d'une infrastructure dédiée. | ||
− | Maintenant que nous avons | + | Maintenant que nous avons identifié une technique d'intégration d'IPv6 à un réseau existant, reste le problème de la méthode du déploiement d'IPv6. Par quel bout attaquer le problème ? |
+ | ==Etude et préparation== | ||
− | + | <center> | |
+ | [[image:V41-3.png|400px|thumb|center|]] | ||
+ | </center> | ||
− | |||
− | L'intégration d'IPv6 doit se faire avec méthode et selon un mode projet en suivant des étapes planifiées. | + | Déployer IPv6 dans un réseau, c'est bien plus qu'un changement de tuyau. Cela touche tout le système d'information. On ne passe pas d'IPv4 à IPv6, comme on change de version dans un logiciel. Il faut mettre à jour tout le réseau, et toutes les applications. L'intégration d'IPv6 doit se faire avec méthode, et selon un mode projet, en suivant des étapes planifiées. |
− | + | ||
− | + | ||
− | + | ||
− | La vérification de la disponibilité d'IPv6 peut être aussi simple que vérifier qu'une interface réseau possède l'adresse auto-configurée de portée locale au | + | La première étape commence par une étude, et un inventaire de l'existant, afin d'identifier les points qui vont poser problème. Il n'est pas question de changer tous les équipements. |
− | + | Il faut donc identifier ceux qui disposent d'IPv6. | |
− | + | Pour les autres, qui ne disposent pas d'IPv6, une mise à jour peut être suffisante. Il ne faut pas oublier qu'IP n'est que du logiciel. | |
− | + | La vérification de la disponibilité d'IPv6 peut être aussi simple, que vérifier qu'une interface réseau possède l'adresse auto-configurée de portée locale au lien. | |
− | + | ||
+ | Cependant l'adresse de portée locale au lien n'est pas suffisante. | ||
+ | Pour des communications passant par des routeurs, il faut une adresse unicast routable. | ||
+ | Pour cela, il faut constituer une adresse à partir d'un préfixe public dit GUA. | ||
+ | Le préfixe GUA est indispensable si le réseau est destiné à être interconnecté à l'Internet. | ||
+ | Ensuite, il faut définir un préfixe local selon un plan d'adressage reposant sur le champ SID. | ||
+ | Le préfixe public complété par le préfixe local va constituer un préfixe réseau de 64 bits attribué à un lien. | ||
C'est en combinant ce préfixe sur 64 bits et un identifiant sur 64 bits qu'une adresse IPv6 unicast est composée. | C'est en combinant ce préfixe sur 64 bits et un identifiant sur 64 bits qu'une adresse IPv6 unicast est composée. | ||
+ | ==Déploiement de la double pile== | ||
− | + | <center> | |
+ | [[image:V41-4a.png|400px|thumb|center|]] | ||
+ | </center> | ||
− | Une fois le plan d'adressage défini, il reste à distribuer les adresses aux noeuds. Ceci va s'effectuer par la configuration | + | Une fois le plan d'adressage défini, il reste à distribuer les adresses aux noeuds. Ceci va s'effectuer, par la configuration en double pile, des équipements existants. |
− | Il s'agit cette fois de configurer en IPv6 les routeurs, les serveurs et les postes de travail. A ce stade, il ne faut pas oublier d'intégrer dans l'annuaire du domaine les adresses IPv6 allouées. | + | Il s'agit cette fois de configurer en IPv6 les routeurs, les serveurs, et les postes de travail. Comme il est peut probable que toutes les applications métiers soient capables de fonctionner en IPv6. Le réseau va rester mixte. |
+ | A ce stade, il ne faut pas oublier d'intégrer dans l'annuaire du domaine, les adresses IPv6 allouées. | ||
+ | Des nouveaux terminaux pourront apparaitre, et fonctionner en IPv6 nativement, tout en inter-opérant avec l'existant passé en double pile. | ||
+ | On peut rappeler ici, la capacité d'IPv6 à se répandre facilement sur les terminaux à l'aide de l'auto-configuration dite, sans état. | ||
− | + | Le déploiement d'IPv6 pour les applications consiste, à ne pas avoir une version de l'application par protocole. Au contraire, la même application doit aussi bien fonctionner, avec IPv4, qu'avec IPv6. | |
+ | Ainsi, quel que soit le protocole IP, celui-ci est transparent au niveau de l'utilisateur, et de l'application. | ||
− | + | Pour avoir des applications qui fonctionnent à la fois en IPv4, et en IPv6, il faut que les applications utilisent un format d'adresse sur 128 bits, autrement dit compatible à IPv6. | |
+ | La version du protocole utilisée dépendra alors de l'adresse de destination. | ||
+ | Lorsque l'adresse de destination est une adresse IPv6 contenant une adresse IPv4, la communication va s'effectuer en utilisant des paquets IPv4. | ||
+ | Et lorsque l'adresse de destination contient bien une adresse IPv6, la communication va s'effectuer par des paquets IPv6. | ||
+ | On voit, que la même application utilise la double pile, et que le choix de la pile est fait en fonction de la version de l'adresse du correspondant. | ||
+ | Soulignons que le développement d'application doit se faire de nos jours exclusivement avec le format d'adresse pour IPv6. Ainsi l’application est compatible avec IPv6, et elle reste toujours utilisable dans un environnement IPv4. | ||
+ | ==Problèmes liés au déploiement d'IPv6== | ||
− | ' | + | Le déploiement d'IPv6 dans un réseau existant peut amener à des dégradations de service, si des précautions ne sont pas prises. C'est ce que nous allons voir maintenant. |
+ | <center> | ||
+ | [[image:V41-5.png|400px|thumb|center|]] | ||
+ | </center> | ||
− | Le | + | Le premier problème porte sur la '''phase d'établissement de connexion'''. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Les temps de réponse pour joindre un serveur peut avoir significativement augmenté tout du moins assez pour agacer l'utilisateur. Voyons le problème en détail. | Les temps de réponse pour joindre un serveur peut avoir significativement augmenté tout du moins assez pour agacer l'utilisateur. Voyons le problème en détail. | ||
− | Un client en double pile souhaite accéder à un serveur | + | Un client en double pile souhaite accéder à un serveur. |
− | + | Après interrogation du service de nommage, il obtient les 2 adresses du serveur qui est lui aussi en double pile. | |
− | Conformément aux préconisations, le client demande de préférence l'établissement | + | Conformément aux préconisations, le client demande de préférence l'établissement d'une connexion TCP en utilisant IPv6. |
− | + | IPv6 ayant potentiellement des liens à base de tunnel IPv4, a une connectivité plus fragile. Il se peut que le serveur soit non joignable. | |
− | IPv6 ayant potentiellement des liens à base de tunnel IPv4, | + | Après plusieurs tentatives infructueuses, qui auront pris de très nombreuses secondes, le client essaye donc avec l'adresse IPv4 et là, la connexion s'établit dans un temps normal. |
− | + | Devant ce problème, la méthode va consister à tenter la connexion en IPv6 dans un délai très court (de l'ordre de 500 millisecondes), et de passer à IPv4 au plus vite en cas d'échec. | |
− | Devant ce problème, la méthode va consister à tenter la connexion en IPv6 dans un délai très court (de l'ordre de 500 millisecondes), et passer à IPv4 au plus vite en cas d'échec | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | Le second problème est lié à la '''taille des paquets IP'''. | ||
+ | La taille maximale des paquets IPv6 est souvent plus limitée que pour celle pour IPv4, du fait d'un usage des tunnels plus fréquent. | ||
Le client arrive à établir la connexion avec le serveur. | Le client arrive à établir la connexion avec le serveur. | ||
Et tant que les échanges utilisent des petits paquets tout se passe bien. | Et tant que les échanges utilisent des petits paquets tout se passe bien. | ||
− | Dès qu'un paquet de taille | + | Dès qu'un paquet de taille supérieure à la taille maximale du paquet permis par le chemin est envoyé. Celui-ci est jeté, du fait qu'un routeur IPv6 ne fait pas de fragmentation. |
+ | Le routeur qui supprime le paquet signale à la source, par un message ICMP, cette anomalie de taille. | ||
+ | Mais comme les messages ICMP sont souvent bloqués par des administrateurs réseaux maladroits, il n'y aura pas de fragmentation faite par la source. | ||
+ | Au final, une connexion est établie, mais aucune donnée ne pourra être échangée. | ||
+ | La solution proposée consiste à ce que, TCP surveille la taille des paquets perdus, et que les retransmissions s'effectuent avec des tailles de paquet de plus en plus petites, pour finir par correspondre à la taille maximale du paquet permis par le chemin. | ||
− | + | Enfin, un autre problème lié aussi au tunnel, porte sur '''l'interactivité dégradée'''. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | Enfin un autre problème | + | |
Comme la connectivité IPv6 comporte souvent des tunnels. | Comme la connectivité IPv6 comporte souvent des tunnels. | ||
− | |||
Les tunnels peuvent être de longueur importante ajoutant des délais au temps de transfert du paquet. | Les tunnels peuvent être de longueur importante ajoutant des délais au temps de transfert du paquet. | ||
− | Ainsi le chemin entre un client et un serveur en IPv6 peut être bien plus long que si la communication avait été faite en IPv4. | + | Ainsi, le chemin entre un client et un serveur en IPv6 peut être bien plus long, que si la communication avait été faite en IPv4. |
− | + | La solution n'est pas au niveau de l'application, elle réside dans la constitution des tunnels. Ceux-ci doivent être les plus courts possible. | |
− | La solution n'est pas au niveau de l'application, elle réside dans la constitution des tunnels. Ceux-ci doivent être les plus | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ==Conclusion== | |
+ | <center> | ||
+ | [[image:V41-6.png|400px|thumb|center|]] | ||
+ | </center> | ||
− | |||
− | + | La double pile permet la coexistence d'IPv6 avec IPv4 dans le même réseau. | |
+ | Au commencement, IPv4 reste fonctionnel, et IPv6 ne risque pas de compromettre le bon fonctionnement des services. | ||
− | + | Le déploiement d'IPv6 s'effectue progressivement, et constitue bien une extension à IPv4 plutôt qu'un remplacement. Autrement dit, IPv6 est une évolution d'IPv4, et non le moyen de faire un Internet parallèle, et disjoint de l'existant. | |
− | + | Il n'en reste pas moins, que la double pile reste transitoire, et que la présence d'IPv4 oblige à prendre des précautions pour éviter une perte de performance du service fourni par IPv6. | |
Le service de communication en IPv6 est appelé à s'améliorer avec la disparition progressive d'IPv4. | Le service de communication en IPv6 est appelé à s'améliorer avec la disparition progressive d'IPv4. |
Latest revision as of 08:50, 1 March 2022
Activité 41 : Communiquer en double pile
Introduction
Le déploiement IPv6 dans un réseau doit se faire selon de bonnes pratiques comme :
- Ne pas casser ou perturber ce qui fonctionne en IPv4. IPv6 s'ajoute à l'existant, mais ne remplace pas l'existant. Le déploiement d'IPv6 est un processus progressif, et additionnel.
- Transparent à l'utilisation ou indolore à l'utilisateur. Ce dernier ne doit constater aucune dégradation du service de communication.
- Viser des améliorations en terme, de simplicité, de gestion et de performance du réseau ou, pire, que cette dernière soit équivalente à celle obtenue en IPv4. On doit même constater un meilleur fonctionnement du réseau, afin d'encourager, et de motiver au passage à IPv6.
- Maintenir la connectivité avec l'Internet IPv4. IPv6 est une évolution de l'Internet, et ne doit pas être vue comme un moyen de faire un Internet parallèle.
Nous allons voir maintenant comment mettre en oeuvre ces bonnes pratiques, avec d'abord la présentation de la technique de la double pile, puis les étapes de déploiement d'IPv6 dans un réseau existant, et enfin les problèmes qui peuvent potentiellement survenir lors de ce déploiement.
Technique de la double pile
Le premier mécanisme d'intégration recommandé repose sur la technique dite de la double pile.
Cette technique consiste à configurer à la fois la pile protocolaire IPv4 et la pile protocolaire IPv6 au sein d'un même noeud.
Ainsi, le noeud est capable de communiquer dans les 2 versions du protocole IP.
Il est en quelque sorte bilingue. Il parle le langage de son correspondant :
- Lorsque l'adresse IP du correspondant appartient à l'espace d'adressage IPv4, la communication s'effectue avec des paquets IPv4.
- Et quand l'adresse IP du correspondant appartient à l'espace d'adressage IPv6, la communication s'effectue en utilisant IPv6.
Lorsque le serveur est lui-même en double pile, le client commencera par une communication en IPv6, Si sa tentative échoue, il basculera sur une communication en IPv4.
Dans le cas d'un routeur, celui-ci possède une table de routage pour chaque version du protocole. Le routeur est ainsi capable de relayer à la fois les paquets IPv6 et IPv4. De cette façon, IPv4 et IPv6 co-existe sur la même infrastructure. Autrement dit IPv6 n'a pas besoin d'une infrastructure dédiée.
Maintenant que nous avons identifié une technique d'intégration d'IPv6 à un réseau existant, reste le problème de la méthode du déploiement d'IPv6. Par quel bout attaquer le problème ?
Etude et préparation
Déployer IPv6 dans un réseau, c'est bien plus qu'un changement de tuyau. Cela touche tout le système d'information. On ne passe pas d'IPv4 à IPv6, comme on change de version dans un logiciel. Il faut mettre à jour tout le réseau, et toutes les applications. L'intégration d'IPv6 doit se faire avec méthode, et selon un mode projet, en suivant des étapes planifiées.
La première étape commence par une étude, et un inventaire de l'existant, afin d'identifier les points qui vont poser problème. Il n'est pas question de changer tous les équipements. Il faut donc identifier ceux qui disposent d'IPv6. Pour les autres, qui ne disposent pas d'IPv6, une mise à jour peut être suffisante. Il ne faut pas oublier qu'IP n'est que du logiciel. La vérification de la disponibilité d'IPv6 peut être aussi simple, que vérifier qu'une interface réseau possède l'adresse auto-configurée de portée locale au lien.
Cependant l'adresse de portée locale au lien n'est pas suffisante. Pour des communications passant par des routeurs, il faut une adresse unicast routable. Pour cela, il faut constituer une adresse à partir d'un préfixe public dit GUA. Le préfixe GUA est indispensable si le réseau est destiné à être interconnecté à l'Internet. Ensuite, il faut définir un préfixe local selon un plan d'adressage reposant sur le champ SID. Le préfixe public complété par le préfixe local va constituer un préfixe réseau de 64 bits attribué à un lien. C'est en combinant ce préfixe sur 64 bits et un identifiant sur 64 bits qu'une adresse IPv6 unicast est composée.
Déploiement de la double pile
Une fois le plan d'adressage défini, il reste à distribuer les adresses aux noeuds. Ceci va s'effectuer, par la configuration en double pile, des équipements existants.
Il s'agit cette fois de configurer en IPv6 les routeurs, les serveurs, et les postes de travail. Comme il est peut probable que toutes les applications métiers soient capables de fonctionner en IPv6. Le réseau va rester mixte. A ce stade, il ne faut pas oublier d'intégrer dans l'annuaire du domaine, les adresses IPv6 allouées. Des nouveaux terminaux pourront apparaitre, et fonctionner en IPv6 nativement, tout en inter-opérant avec l'existant passé en double pile. On peut rappeler ici, la capacité d'IPv6 à se répandre facilement sur les terminaux à l'aide de l'auto-configuration dite, sans état.
Le déploiement d'IPv6 pour les applications consiste, à ne pas avoir une version de l'application par protocole. Au contraire, la même application doit aussi bien fonctionner, avec IPv4, qu'avec IPv6. Ainsi, quel que soit le protocole IP, celui-ci est transparent au niveau de l'utilisateur, et de l'application.
Pour avoir des applications qui fonctionnent à la fois en IPv4, et en IPv6, il faut que les applications utilisent un format d'adresse sur 128 bits, autrement dit compatible à IPv6. La version du protocole utilisée dépendra alors de l'adresse de destination. Lorsque l'adresse de destination est une adresse IPv6 contenant une adresse IPv4, la communication va s'effectuer en utilisant des paquets IPv4. Et lorsque l'adresse de destination contient bien une adresse IPv6, la communication va s'effectuer par des paquets IPv6. On voit, que la même application utilise la double pile, et que le choix de la pile est fait en fonction de la version de l'adresse du correspondant.
Soulignons que le développement d'application doit se faire de nos jours exclusivement avec le format d'adresse pour IPv6. Ainsi l’application est compatible avec IPv6, et elle reste toujours utilisable dans un environnement IPv4.
Problèmes liés au déploiement d'IPv6
Le déploiement d'IPv6 dans un réseau existant peut amener à des dégradations de service, si des précautions ne sont pas prises. C'est ce que nous allons voir maintenant.
Le premier problème porte sur la phase d'établissement de connexion. Les temps de réponse pour joindre un serveur peut avoir significativement augmenté tout du moins assez pour agacer l'utilisateur. Voyons le problème en détail.
Un client en double pile souhaite accéder à un serveur. Après interrogation du service de nommage, il obtient les 2 adresses du serveur qui est lui aussi en double pile. Conformément aux préconisations, le client demande de préférence l'établissement d'une connexion TCP en utilisant IPv6. IPv6 ayant potentiellement des liens à base de tunnel IPv4, a une connectivité plus fragile. Il se peut que le serveur soit non joignable. Après plusieurs tentatives infructueuses, qui auront pris de très nombreuses secondes, le client essaye donc avec l'adresse IPv4 et là, la connexion s'établit dans un temps normal. Devant ce problème, la méthode va consister à tenter la connexion en IPv6 dans un délai très court (de l'ordre de 500 millisecondes), et de passer à IPv4 au plus vite en cas d'échec.
Le second problème est lié à la taille des paquets IP. La taille maximale des paquets IPv6 est souvent plus limitée que pour celle pour IPv4, du fait d'un usage des tunnels plus fréquent. Le client arrive à établir la connexion avec le serveur. Et tant que les échanges utilisent des petits paquets tout se passe bien. Dès qu'un paquet de taille supérieure à la taille maximale du paquet permis par le chemin est envoyé. Celui-ci est jeté, du fait qu'un routeur IPv6 ne fait pas de fragmentation. Le routeur qui supprime le paquet signale à la source, par un message ICMP, cette anomalie de taille. Mais comme les messages ICMP sont souvent bloqués par des administrateurs réseaux maladroits, il n'y aura pas de fragmentation faite par la source. Au final, une connexion est établie, mais aucune donnée ne pourra être échangée. La solution proposée consiste à ce que, TCP surveille la taille des paquets perdus, et que les retransmissions s'effectuent avec des tailles de paquet de plus en plus petites, pour finir par correspondre à la taille maximale du paquet permis par le chemin.
Enfin, un autre problème lié aussi au tunnel, porte sur l'interactivité dégradée. Comme la connectivité IPv6 comporte souvent des tunnels. Les tunnels peuvent être de longueur importante ajoutant des délais au temps de transfert du paquet. Ainsi, le chemin entre un client et un serveur en IPv6 peut être bien plus long, que si la communication avait été faite en IPv4. La solution n'est pas au niveau de l'application, elle réside dans la constitution des tunnels. Ceux-ci doivent être les plus courts possible.
Conclusion
La double pile permet la coexistence d'IPv6 avec IPv4 dans le même réseau.
Au commencement, IPv4 reste fonctionnel, et IPv6 ne risque pas de compromettre le bon fonctionnement des services.
Le déploiement d'IPv6 s'effectue progressivement, et constitue bien une extension à IPv4 plutôt qu'un remplacement. Autrement dit, IPv6 est une évolution d'IPv4, et non le moyen de faire un Internet parallèle, et disjoint de l'existant.
Il n'en reste pas moins, que la double pile reste transitoire, et que la présence d'IPv4 oblige à prendre des précautions pour éviter une perte de performance du service fourni par IPv6.
Le service de communication en IPv6 est appelé à s'améliorer avec la disparition progressive d'IPv4.