Avec le lancement mondial d'IPv6, nous avons pensé qu'il serait utile de présenter ce qui a été fait dans Windows 8 Release Preview pour prendre en charge IPv6. Christopher Palmer, membre de l'équipe chargée de la gestion du programme Gestion réseau de base, a rédigé ce billet.
--Steven


IPv4 est le protocole Internet qui a été utilisé pour la connexion à Internet depuis des décennies. IPv4 n'a pourtant jamais été conçu pour une telle charge et une telle échelle, et ce protocole commence à montrer des signes de fatigue au fur et à mesure de l'expansion d'Internet, même si l'incroyable prévoyance des concepteurs à l'origine permet toujours de faire fonctionner Internet à grande échelle. Les fournisseurs de services Internet trouvent la maintenance d'IPv4 de plus en plus coûteuse et un remaniement sera nécessaire pour faire face au nombre exponentiel des PC et périphériques à venir.

Depuis plusieurs années, les industriels du secteur, dont Microsoft, ont collaboré pour proposer une version entièrement nouvelle du protocole Internet (IPv6) sur différents périphériques, services et infrastructures réseau. Depuis Windows XP SP3, les versions de Windows ont pris en charge IPv6, permettant ainsi la transition vers IPv6. Nous avons développé Windows 8 pour que vous (et vos applications) conserviez des connexions fiables lors de la mise en place de cette spectaculaire transition.

Limites du protocole IPv4

Examinons d'abord certains des concepts de base. Chaque fois que vous naviguez sur un site Web, tel que www.bing.com, ce nom convivial se transforme en une adresse IP, qui ressemble à ceci 23.3.105.97. Conceptuellement, une adresse IP s'apparente à un numéro de téléphone. Tout comme vos contacts ont des numéros de téléphone, tout ce qui se connecte à Internet possède une ou plusieurs adresses IP. L'« annuaire » pour Internet est le système DNS (Domain Name System). Le système DNS résout un nom donné en un ensemble d'adresses IP.

IPv4 ne fournissait que 4 milliards d'adresses IP environ. Cela semblait beaucoup dans les années 1970. Mais en 2015, environ 15 milliards de périphériques seront connectés (PC, téléphones, appareils ménagers, voitures et même le mobilier !). IPv4 ne dispose simplement pas des adresses nécessaires pour connecter un si grand nombre de périphériques à Internet.

Avec l'accroissement des demandes d'adresses IPv4 de ces dernières années, la communauté Internet a trouvé des moyens de « partager » ces ressources vitales. Le moyen le plus courant pour partager une adresse IPv4 consiste à utiliser une traduction d'adresses réseau (NAT, Network Address Translation). Cette fonctionnalité est intégrée à la plupart des routeurs domestiques. Elle permet aux ordinateurs et aux autres périphériques d'un foyer de partager une seule adresse IPv4 publique.

Par convention, les fournisseurs de services Internet attribuent une seule adresse IP à chaque foyer. Cela devient toutefois de plus en plus difficile. En raison de la diminution du nombre d'adresses IP, les adresses IPv4 uniques ne sont simplement pas disponibles pour chaque foyer. Nous verrons peut-être bientôt de grandes villes ou des pays entiers chercher à utiliser une traduction d'adresses réseau (NAT) à grande échelle. Les fournisseurs de services Internet doivent développer une infrastructure coûteuse et complexe pour continuer à prendre en charge IPv4. Pour l'utilisateur final, l'épuisement des adresses IP signifie que les services basés sur les emplacements, par exemple Bing, ne fonctionneront pas correctement, et que les applications pair à pair souffriront d'une dégradation de leur performance.

L'avenir avec IPv6

Microsoft, avec d'autres sociétés de technologie, a travaillé sur le développement du protocole IPv6 pour que l'utilisateur final puisse continuer à bénéficier d'un accès de haute qualité à Internet, malgré les limites en termes de performance et de connexion engendrées par l'épuisement des adresses IPv4.

L'avantage le plus immédiat d'IPv6 est qu'il fournit plus de 3×1038 adresses IP, ce qui est suffisant pour que chaque personne bénéficie de milliards d'adresses rien que pour elle, ou suffisant pour donner une adresse unique à chaque étoile dans l'univers. Ceci favorisera la croissance et l'évolution d'Internet. IPv6 propose également de nombreuses améliorations en termes de sécurité et de performance, telles que la prise en charge intégrée d'IPsec. (Vous vous demandez ce qui est arrivé à IPv5 ? Bing peut vous aider à savoir pourquoi il a été « ignoré ».)

Mettre à niveau tout Internet vers IPv6 ne se fait pas instantanément. Cela a pris plusieurs années pour parvenir au point où nous en sommes aujourd'hui, et plusieurs années de travail nous attendent encore. Actuellement, environ 1% des périphériques peuvent se connecter à Internet à l'aide d'IPv6.

Pendant la période de transition, la plupart des réseaux peuvent se ranger dans trois catégories :

  • Réseaux IPv4 uniquement. C'est probablement ce que vous avez aujourd'hui, car la plupart des fournisseurs de services Internet commencent tout juste à prendre en charge IPv6. Il est en outre possible qu'un grand nombre des périphériques qui se connectent à Internet ne prennent en charge qu'IPv4.
  • Réseaux IPv4 et IPv6 (double pile). Cela signifie que votre fournisseur de services Internet configure votre PC avec à la fois des adresses IPv4 et IPv6. Ce modèle est répandu dans les réseaux par câble et distants qui effectuent la transition.
  • Réseaux IPv6 uniquement. Cela signifie que votre fournisseur de services Internet configure votre périphérique avec uniquement des adresses IPv6. Comme de nombreux sites Web utilisent encore Internet IPv4 uniquement, les fournisseurs de services Internet doivent utiliser un dispositif de traduction d'adresses réseau (NAT) pour permettre l'accès de votre réseau IPv6 à Internet IPv4. Ce dispositif s'appelle NAT64. Ce mode se répand de plus en plus dans l'environnement mobile, car disposer d'un seul genre de protocole Internet entre l'appareil mobile et l'infrastructure de l'opérateur est plus simple à déployer et moins coûteux qu'une configuration à double pile. En outre, les opérateurs mobiles ressentent l'épuisement des adresses IPv4 plus sévèrement. Voici un diagramme sommaire de cette configuration :

Le routeur permet aux périphériques IPv6 uniquement de se connecter à Internet IPv4 via NAT64

Vous vous demandez peut-être quel genre de connexion vous avez actuellement. Nous avons un widget au bas de ce billet qui peut vous le montrer.

Windows 8 est conçu pour assurer une connexion sur tous les types de configuration réseau. Sous Windows 8, vous pouvez lancer des recherches DNS avec les applets de commande Resolve-DNSname dans Windows PowerShell. Ouvrez PowerShell et exécutez la commande ci-dessous. Vous verrez que des enregistrements IPv6 et IPv4 sont renvoyés. Seuls les sites Web qui prennent en charge IPv6 ont des enregistrements IPv6.

Enregistrements IPv6 et IPv4

Windows 8 sur des réseaux IPv4 uniquement

Sur un réseau IPv4 uniquement, les périphériques sont configurés avec des adresses IPv4 uniquement. Ce modèle fonctionne toujours dans Windows 8, comme dans le passé. De plus, les hôtes Windows fournissent également une connexion IPv6 en canalisant ce trafic à l'intérieur de différentes technologies de transition, par exemple Teredo, dans lequel les paquets IPv6 sont encapsulés dans des paquets UDP IPv4. Maintenant que nous commençons à voir l'émergence de serveurs et services IPv6 uniquement, Windows 8 tente automatiquement une connexion IPv6 lorsque le serveur n'offre pas d'adresse IPv4. Notez que Teredo est activé par défaut sur les réseaux de type non-domaine uniquement et qu'il est possible que Teredo ne soit pas disponible si votre réseau bloque les paquets UDP.

Windows 8 sur des réseaux à double pile

Pendant la période de transition, les réseaux à double pile seront le modèle de déploiement courant. Sur un réseau à double pile, les périphériques seront configurés avec à la fois des adresses IPv4 et des adresses IPv6.

Tout au long de cette transition, notre objectif premier a toujours été de réduire l'impact de la transition pour les utilisateurs au quotidien. Que votre connexion s'effectue par IPv4 ou IPv6 ne doit rien changer pour vous. Ce qui compte, c'est que vous ayez une connexion Internet rapide et fiable, avec une transition vers IPv6 qui soit la plus transparente possible, et que vous puissiez bénéficier du contenu.

Parallèlement, aider à la progression de la transition vers IPv6 est également une priorité que nous nous sommes fixée. C'est pour cela que Windows préfère la connexion IPv6 native par rapport à la connexion IPv4, lorsque les deux modes de connexion sont disponibles.

En résumé, nous avons un double objectif qui est le suivant : assurer une expérience utilisateur fiable tout en favorisant la transition vers IPv6. Comme vous pouvez l'imaginer, cela peut parfois amener à de subtils compromis, qui ont été le sujet d'un grand nombre de débats au sein de la communauté Internet.

Afin de parvenir à classifier ces objectifs parfois contradictoires, des sites Web internationaux majeurs (notamment Bing.com, Microsoft.com et Xbox.com) ont organisé un événement nommé World IPv6 Day (journée mondiale d'IPv6) l'année dernière. Au cours de ce test d'une journée d'Internet IPv6, les sites Web participants ont activé IPv6 en plus d'IPv4.

La bonne nouvelle, c'est que la plupart des choses ont fonctionné. Tout ce qui a trait au fonctionnement correct d'Internet (serveurs, périphériques de l'utilisateur final et réseaux de distribution de contenus) a pu fonctionner à l'échelle sans problème.

Cependant, nous avons également observé qu'IPv6 était incorrectement configuré pour une petite portion de la population (0,01 % du monde), apparemment en raison d'un problème de routeur ou de fournisseur de services Internet. Cela n'est pas tellement étonnant, car IPv6 est une technologie relativement nouvelle, et des erreurs peuvent se produire. Mais pour ces utilisateurs malchanceux, cela pouvait avoir un impact significatif sur leur utilisation quotidienne d'Internet.

Résilience d'ingénierie dans nos algorithmes de connexion pour les réseaux à double pile

Pour qu'un périphérique prenne réellement en charge les réseaux à double pile, les applications doivent non seulement être capables d'envoyer du trafic avec IPv4 et IPv6, mais le système d'exploitation doit également être assez intelligent pour savoir quel protocole convient à la tâche en cours. Encore plus précisément, comme votre périphérique doit posséder plusieurs adresses IPv4 et IPv6, et comme la destination que vous essayez d'atteindre comporte également plusieurs adresses IPv4 et IPv6, la pile doit être assez intelligente pour savoir quelles sont les adresses source et de destination spécifiques à utiliser pour la connexion. Cette fonctionnalité se nomme le tri d'adresses et c'est un domaine que nous avons amélioré dans Windows 8. L'idée sous-jacente au tri d'adresses est de déterminer quelle est la paire d'adresses qui est susceptible de produire la meilleure connexion, afin que l'application n'ait pas besoin d'attendre.

Lorsque Windows tente de se connecter à un site Web à double pile, Windows trie ses propres adresses IP et celles du site Web pour choisir la paire à utiliser pour établir la connexion. (Pour les tampons normalisés, le tri d'adresses fait appel à la norme RFC 3484.)

Voici ci-dessous un diagramme illustrant comment Windows utilise le tri d'adresses.

1 - Les applications demandent à se connecter à www.xbox.com. 2 - Windows envoie les requêtes DNS pour résoudre www.xbox.com en adresses IP. 3 - Windows trie les réponses au serveur DNS à l'aide d'un algorithme défini en RFC 3484. 4 - Windows se connecte au serveur Web à l'aide de la première adresse de la liste triée.

     

Traditionnellement, le tri d'adresses repose sur une configuration correcte de Windows par votre routeur. Windows analyse les informations de routage fournies par le routeur et les utilise avec le tri d'adresses pour assurer une connexion rapide aux ressources nommées. La norme RFC 3484 stipule qu'IPv6 doit être préféré si IPv6 est configuré par votre routeur.

La journée mondiale d'IPv6 a montré que certains clients étaient configurés avec des informations de routage IPv6, mais qu'ils n'avaient pas réellement de connexion IPv6 à Internet. Cela semble être le résultat d'une configuration incorrecte effectuée par certains fournisseurs de services Internet ou par certains routeurs domestiques défectueux. Windows tente de se connecter aux sites Web avec le protocole IPv6, s'attendant à ce qu'il fonctionne, mais ce n'est pas le cas ! Finalement, Windows détecte que la tentative de connexion a échoué et revient à la connexion IPv4. Pour les utilisateurs toutefois, la connexion à des sites Web en double pile peut être retardée de 10 à 15 secondes. Cela entraîne de façon évidente un problème pour les navigateurs Web, mais n'importe quelle application connectée au réseau fait face au problème.

Lorsque nous avons recherché une solution à ce problème côté ingénierie, nous avons dû prendre en compte deux points importants. D'abord, de nombreuses entreprises déploient des topologies de routage complexes. Nous devions nous assurer que notre changement n'endommagerait pas la connexion dans ces environnements. Ensuite, nous avions besoin d'une solution qui fonctionne non seulement pour Internet Explorer, mais également pour toutes les autres applications qui s'appuient sur Windows pour se connecter aux ressources réseau. Ces applications comptent sur nous pour rester intelligemment connectées tout au long de la transition vers IPv6. Notre solution se devait de répondre aux besoins des applications de bureau existantes, ainsi que des nouvelles applications de style Metro.

Windows 8 teste la connexion IPv6 lorsque vous vous connectez à un nouveau réseau qui promeut la possibilité de routage IPv6, et il n'utilise la connexion IPv6 que si la connexion IPv6 fonctionne réellement. Cette approche est une modification de notre implémentation de RFC 3484. Au lieu de trier les adresses conformément à la stratégie, nous utilisons l'état réel du réseau comme entrée dans notre algorithme. Sur un réseau incorrectement configuré, cette approche améliore l'expérience non seulement pour les navigateurs, mais également pour les applications qui se connectent à des destinations à double pile à l'aide d'API Windows standard.

Windows 8 réalise le test de connexion réseau lorsque vous vous connectez pour la première fois à un nouveau réseau. Il met en cache ces informations et répète le test tous les 30 jours. Le test de connexion est une simple requête HTTP GET adressée à un serveur IPv6 uniquement qui est hébergé par Microsoft. (Pour les tampons normalisés, cela est implémenté entre les règles 5 et 6 du tri des adresses de destination dans notre implémentation de RFC 3484.) Windows effectue un test de connexion réseau similaire pour la connexion IPv4. Si le protocole IPv4 et le protocole IPv6 fonctionnent tous les deux, IPv6 est préféré.

Pour que Windows 8 ne provoque pas de problèmes sur les réseaux d'entreprise, la fonctionnalité compte deux protections :

  • Si l'entreprise a fourni des informations de routage spécifiques à une destination en particulier, alors Windows 8 respectera cette préférence, quelle que soit la connexion déterminée par Windows. Dans les environnements d'entreprise, Windows suppose que les administrateurs réseau qui configurent ces routages ont explicitement pensé que ces routages étaient les mieux appropriés.
  • Cette modification n'est pas implémentée sur les réseaux dotés de serveurs proxy Web. Sur ces réseaux, le serveur proxy fournit la connexion à Internet, de sorte que le test de connexion IPv6 de bout en bout n'est pas utile. À la place, Windows 8 ouvre simplement les connexions au serveur proxy de la manière la plus efficace possible.

Nous nous sommes ainsi assurés que les applications et les expériences sur Windows 8 puissent demeurer connectées à Internet de manière rapide et fiable tout au long de la transition vers IPv6, même si votre réseau local est incorrectement configuré.

Prêt pour l'avenir avec des réseaux IPv6 uniquement

Sur un réseau IPv6 uniquement, le meilleur moyen d'améliorer une expérience utilisateur est d'augmenter le nombre de services et d'expériences disponibles par le biais d'IPv6. Sur un tel réseau, l'accès à Internet IPv4 s'effectue via un dispositif NAT64. Ces dispositifs peuvent constituer une fragilité et un point d'erreur pour la connexion, entraînant des limites importantes en termes de performance et la suppression de paquets. Ils endommagent en outre la connexion pair à pair IPv4, requise pour certains jeux à plusieurs joueurs.

Au sein de Microsoft, nous avons beaucoup travaillé pour favoriser la croissance des déploiements IPv6, à la fois dans les paramètres d'entreprise et d'Internet. Un de nos efforts les plus importants est de s'assurer que nos produits serveur prennent en charge IPv6. La prise en charge du protocole IPv6 fait partie de nos critères d'ingénierie communs. C'est un des engagements de l'entreprise envers les clients que nos produits professionnels, tels qu'Exchange Server et SharePoint, prennent en charge IPv6 dans les configurations à double pile et IPv6 uniquement. La plupart des produits Microsoft conçus depuis 2007 prennent en charge IPv6. Pour en savoir plus, lisez l'article sur la prise en charge d'IPv6 dans les autres produits Microsoft sur le site Technet. Grâce à cet effort, les développeurs et les fournisseurs de solutions peuvent prendre en charge IPv6 dans leurs propres produits.

Logo du lancement IPv6 mondial (World IPv6 Launch)

Microsoft travaille également à la prise en charge d'IPv6 pour ses propres services. Plus tôt dans l'année, Internet Society a annoncé le lancement mondial d'IPv6, une étape majeure dans le processus de mise à niveau d'Internet vers IPv6. En juin, Bing et d'autres sites Web commenceront à diffuser du trafic par le biais d'IPv6 de façon permanente. Les fournisseurs de matériel travaillent sur la prise en charge d'IPv6 dans les dispositifs de routage domestiques et de nombreux fournisseurs de services Internet vont commencer à déployer IPv6 à grande échelle. Les réseaux de distribution de contenus ont par ailleurs commencé à prendre en charge IPv6 au sein de leurs propres réseaux.

Avec la sortie de Windows 8, certains de nos services d'infrastructure déploieront la prise en charge d'IPv6.

Windows Update est un service primordial qui offre une prise en charge et des mises à jour permanentes à des millions d'utilisateurs chaque jour. Un nombre toujours croissant de PC est amené à se connecter à des réseaux haut débit mobile, sur lesquels la configuration IPv6 uniquement est fréquente. Nous devons nous assurer que les téléchargements sont mis à votre disposition de manière fiable sur ces réseaux.

C'est pour cela que le service Windows Update prend maintenant en charge IPv6 et IPv4. Windows Update utilise les réseaux de distribution de contenus pour la diffusion mondiale des mises à jour et nous travaillons en partenariat avec eux à la prise en charge d'IPv6. Windows 8 utilisera IPv6, s'il est disponible, afin que les utilisateurs bénéficient toujours de la meilleure connexion possible pour télécharger les mises à jour Windows.

Nous collaborons avec les réseaux de distribution de contenus pour étendre la prise en charge d'IPv6 au-delà du cadre de Windows 8. Lorsque ce travail sera achevé, même Windows 7 et Windows Vista utiliseront automatiquement IPv6, lorsqu'il sera disponible, pour se connecter à Windows Update.

À l'avant-garde

Windows 8 est connecté et prêt à être utilisé, et notre prise en charge d'IPv6 est un facteur essentiel pour assurer cette connexion dans les années à venir. Comme IPv4 n'a pas été conçu pour gérer l'ampleur des connexions actuelles, Internet connaît un changement radical dans sa base même. Chaque connexion à chaque site Web, chaque jeu à plusieurs joueurs et chaque appel vidéo va progressivement adopter IPv6.

Dans le cadre de cette transition, Microsoft est à l'avant-garde, s'assurant que Windows 8 offre la connexion à Internet la plus résistante possible, tout en proposant des produits et services prêts pour IPv6.

- Chris