jump to navigation

Identifier et corriger les problèmes de migration IPv6 les plus courants 9 juillet 2012

Posted by frnetworker in Diagnostic Réseau, OmniPeek.
Tags: , , ,
add a comment

Le 6 juin 2012 était le jour officiel du lancement du protocole IPv6 !

L’année passée, lors du jour IPv6 mondial ( Word IPv6 Day), plusieurs sociétés majeures d’internet ont activé l’IPv6 pour une journée de tests. Cette année, lors de l’évènement, les sociétés participantes ont à nouveau activé IPv6 et espéraient ne plus le désactiver. Certains participants, comme Google et FaceBook, ne l’ont d’ailleurs plus jamais désactivé après la première édition de cette journée IPv6. L’année passé, il s’agissait pour la plupart des entreprises d’une journée de tests en grandeur réelle dans le but d’un basculement réussi des fournisseurs d’accès internet, des fabricants de matériels réseau et autres sociétés du web.

Dans les faits, on assiste à une pénurie d’adresses IPv4, , l’Asie a d’ailleurs déjà effectué son basculement … aussi le changement définitif approche à grands pas. IPv6 apportera plusieurs améliorations importantes ( plus de détails :  IPv6: Is It Finally Time ). En fait IPv6 a commencé a apparaitre lors des Jeux Olympiques de 2008.

Dans ce billet nous allons mettre un peu les mains dans le cambouis et voir quels problèmes vous pouvez rencontrer lors de la mise en oeuvre de l’IPv6 dans votre société et comment régler les problèmes.

Connectivité

Historiquement, le plus gros problème avec Ipv6 est justement d’établir la connectivité IPv6. Jusqu’à ces derniers temps il y avait assez peu de fournisseurs d’accès internet qui proposaient IPv6 et moins encore pour un usage personnel. L’un des buts principaux de la manifestation World IPb6 Launch était de fournir l’option IPv6 au plus grand nombre possible grâce aux fournisseurs d’accès internet et à son support dans les routeurs domestiques. Même si il est évident que l’IPv6 ne peut pas encore être disponible pour tout le monde, l’Internet Society visait un objectif de 1% de connectés en IPv6.

Après s’être assuré de la disponibilité effective de l’IPv6, le problème suivant est de savoir comment configurer l’IPv6 en respectant l’IPv4. Doit-on utiliser un mécanisme de tunneling ou l’une des méthode de translation IPv4 ? La réponse tient en 3 mots : Aucune des deux pour la bonne raison qu’IPv6 n’interfère pas avec l’adresse « classique » IPv4. Historiquement, des solutions temporaires aillant eu recours au tunneling n’ont plus vraiment de raison d’être : Le support natif de l’IPv6 par les fournisseurs d’accès internet permet d’utiliser la méthode du « Dual Stack » qui autorise le fonctionnement des 2 versions du protocole de concert.

Avant même d’imaginer activer la connectivité IPv6, n’oublier pas les règles « d’hygiène de base » : Utilisez un firewall !

La plupart des équipements modernes, disposent à minima d’un support basique des polices de sécurisation du trafic.

La bonne nouvelle c’est qu’IPv6 ne nécessite plus l’utilisation du NAT (et ne le supporte pas) les polices de sécurité seront beaucoup plus simples à configurer (et beaucoup plus claires).

Les adresse IPv6 sont assez différentes des adresses IpV4, aussi il est assez difficile de savoir ce que doivent être les « Bonnes Pratiques ».

Il est bien sur tentant d’utiliser Stateless Address Auto-Configuration (SLAAC) pour simplifier la mise en œuvre,  mais ce n’est pas forcément la meilleure idée : SLAAC utilise la MAC address pour générer l’adresse IPv6 afin de limiter le risque d’adresses dupliquées. En plus du soucis d’absence de confidentialité en incluant l’identifiant d’un adresse hardware dans l’adresse routable, SLAAC allonge la taille de l’adresse IPv6 plus que nécessaire. Il est bon de se souvenirs des difficultés rencontrées avant l’apparition du DHCP. Lorsqu’une adresse générée par SLAAC aura un format du type :  2001:db8::7ee9:d3ff:ffe46:86bb, une adresse DHCP pour le même host aura un format comme : 2001:db8::1c. Même si l’utilisation de DHCPv6 prend un peu de temps à mettre en oeuvre, cela rendra l’administration au quotidien bien plus simple.

MTU, fragmentation et ICMP

Le premier problème IPv6 survient avec les mauvaises habitudes contractées avec IpV4 concernant le MTU, la fragmentation et ICMP.

En IPv4, les paquets de grande taille, sont fragmentés en plus petits paquets par les routeurs disponibles sur le cheminement des trames.

Il en va tout autrement en IPv6 ou les routeurs vont retourner un paquet ICMPv6 d’erreur pour les paquets trop grands. C’est au poste émetteur de gérer sa propre fragmentation.  Pourquoi un poste devrait il gérer une fragmentation layer 3 peu fiable lorsque TCP c’est charge parfaitement au layer 4? Si un programmeur n’interroge pas l’OS pour s’enquérir de la MTU, et se base sur la MTU standard Ethernet de 1500 octets, moins 20 octets pour l’IPv4 et 20 autres pour TCP, le calcul laisse penser que 1.460 octets sont disponible pour les données TCP dans chaque datagramme. Malheureusement l’entête IPv6 est à minima de 40 Octets soit 20 Octets de moins disponibles !

Heureusement, la plupart des applications réseau comme les navigateurs web, ont tous été testés en IPv6, il peut rester des applications qui ne sont pas codés pour utiliser ces valeurs dynamiques pour la pile réseau. D’autant également, que les politiques de sécurité restrictives en IPv4 bloquent les paquets ICMP à l’exception du ping. De la sorte, la conjonction des entêtes trop long, l’absence de fragmentation par les routeurs associé au blocage partiel des trames ICMPv6 va générer des paquets qui n’atteindront pas leur destination et ne permettront pas le retour (au poste émetteur) des messages de diagnostic d’erreur. Ce problème sera particulièrement difficile à identifier sur switches des réseaux locaux qui autorisent les jumbo frames ethernet puisque les dépassement de taille y sont autorisés et gérés. Les paquets transiteront sans problèmes sur les sous réseaux locaux entre les switches L2 et L3 … mais seront bloqués par les routeurs.

HTTP Compliance

Le dernier problème lié à la transition IPv6 est quelque peu plus subtil … HTTP est un protocole plutôt simple de part sa conception, mais qui cache en fait une grand complexité parce que la plus grand majorité des pages web incluent des tags pour indiquer au navigateur de charger des contenus additionnels qui peuvent provenir de différents serveurs.

Les pages web sur les serveurs hébergés sur des hosts IPv6 pourront être amenés à charger des contenus sur des serveurs IPv4. Durant la phase de cohabitation, les pages web seront alors chargées bien plus lentement si un DNS non compatible IPv6 ignore les requêtes des enregistrements AAAA IPv6, provoquant un time out sur le poste utilisateur qui essayera d’accéder à l’enregistrement A en IPv4. Et comme ce problème n’existe pas pour le serveur … il risque fort de persister jusqu’à la mise à jours des DNS ou des infrastructures de l’hébergeur. Fort heureusement ce type de problème est déjà survenu par le passé depuis 2005 ( voir RFC 4074). Le choix du format de requête AAAA ou A est sous le contrôle du navigateur et ce problème est sérieusement à l’étude en ce moment même.

Les études d’APNIC Labs fin 2011 ont montré qu’Internet Explorer 9 à une timeout de 21 secondes, mais Chrome utilise une méthode qui réduit ce timeout à 0,3 seconde ! (et les versions de FireFox sont encore moins bien loties). D’autres solutions peuvent passer par un filtrage et l’utilisation d’un serveur DNS local qui fera le lookup pour le poste utilisateur, ce qui résoudra le problème grâce à une combinaison caching et forced failback. Le paradoxe d’internet est qu’HTTP a été la clé de voûte de l’adoption massive d’IPv4 mais qu’il sera sans doute le dernier des protocoles majeurs a devenir compatible avec l’IPv6.

Le bon coté des choses est que les utilisateurs ne verront pas la différence lorsqu’ils utiliseront IPv6. IPv6 est supporté par l’ensemble des acteurs majeurs d’internet, y compris les par les navigateurs Web. Et même si il reste de petits problèmes, comme indiqué ci-dessus pour les sites web IPv6 faisant appel à des contenus hébergés sur des serveurs en IPv4, la plus grande partie du web ne posera aucun soucis en IPv6.

Pour les applications plus anciennes et les utilisateurs comme les développeurs qui ont besoin d’utiliser de nombreuses adresses IPv4 il n’y a rien à craindre non plus. IPv6 est un nouveau protocole : il ne modifie en rien le fonctionnement d’IPv4 et les deux vont pouvoir tourner en parallèle jusqu’à ce que les administrateurs réseau décident de désactiver l’IPv4 … très certainement dans plusieurs décennies.

IPv6 est à notre porte, et il est prudent (essentiel) de s’y préparer dès maintenant. Dans cet optique, il est essentiel de disposer des outils temps-réels, comme OmniPeek, qui permettrons de comprendre et résoudre rapidement tout les problèmes rencontré lors de la transition.

•  •

Librement inspiré de l’article Common Deployment Pains with IPv6: How to Identify and Fix Them 

%d blogueurs aiment cette page :