Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. IPv6
  3. Cohabitation IPv4
Extrait - IPv6 Principes et mise en oeuvre (2e édition)
Extraits du livre
IPv6 Principes et mise en oeuvre (2e édition) Revenir à la page d'achat du livre

Cohabitation IPv4-IPv6

Objectifs du chapitre

L’objectif de ce chapitre est de faire le point sur les principales méthodes pouvant permettre de faire communiquer des réseaux basés sur des protocoles différents. Il est en effet inévitable d’envisager une période, probablement assez longue, pendant laquelle subsisteront des réseaux IPv4 alors qu’une partie des communications utiliseront des réseaux IPv6. Nos opérateurs n’offrant pas encore tous le support d’IPv6, nous serons également amenés à faire transiter sur des réseaux IPv4 des communications entre réseaux IPv6.

Il faut donc prévoir des mécanismes susceptibles de répondre à plusieurs besoins :

  • Interconnecter des sites IPv6 d’entreprise au travers d’un réseau ne supportant qu’IPv4.

  • Faire communiquer des sites IPv4 avec des serveurs ou des sites IPv6 externes. 

  • Faire communiquer des postes IPv4 avec des ressources IPv6 externes.

C’est pourquoi il nous faut aborder les pistes les plus susceptibles de répondre à ces problématiques, pistes qui ne sont pas concurrentes mais complémentaires car elles ne s’appliquent pas aux mêmes situations :

  • Dual-stack dans laquelle un nœud travaille à la fois en IPv4 et en IPv6.

  • Tunnel IPv6 dans IPv4 pour l’interconnexion de deux réseaux IPv6 au travers d’un...

Dual-stack IPv4-IPv6

Rappelons que les connexions réseau se font au travers d’une pile de couches réseau, d’où le terme stack en anglais que nous conservons ici pour être cohérents avec les documentations anglophones qui sont légion dans ce domaine.

Cette solution, basée sur le RFC 4213 d’octobre 2005, permet surtout de faire cohabiter les deux technologies de réseaux sur un même lien. Elle sera donc particulièrement utile pour mettre en œuvre en douceur IPv6 sur un réseau local sans en altérer (en principe) le fonctionnement en IPv4.

Elle consiste simplement à installer IPv4 et IPv6 sur un même nœud (poste ou routeur) et à les activer (et/ou à les paramétrer). Cette étape d’activation et de paramétrage est fondamentale puisque nous pouvons parfaitement disposer de systèmes d’exploitation dotés d’IPv4 et d’IPv6 sans pour autant pouvoir les utiliser simultanément tant que nous n’avons pas fait le nécessaire.

A contrario, il est parfois mais de moins en moins souhaitable, pour éviter tout trafic inutile ou toute dégradation de performance liée à un paramétrage incomplet, de désactiver IPv6 quand nous n’avons pas l’usage alors que l’OS est livré avec les deux activés (cas typique des systèmes Windows récents par exemple).

Cette technique est également utilisée par un certain...

Tunnels IPv6-IPv4

Nous abordons maintenant un domaine nettement plus vaste avec les différentes techniques permettant de faire communiquer des réseaux IPv6 au travers de réseaux IPv4. Il existe pour cela plusieurs méthodes utilisant le principe des tunnels.

Certaines établissent des tunnels directs entre les sites, d’autres passent par des intermédiaires (souvent appelé brokers) pour remplir cette fonction.

Nous allons en voir les grands principes ainsi que quelques exemples simples de mise en œuvre. Nous n’entrerons pas dans le détail de tous les protocoles, ce qui pourrait occuper des centaines de pages vu le nombre de RFC traitant du sujet, mais nous viserons à donner suffisamment d’informations pour comprendre ces techniques, choisir la plus pertinente selon le cas et l’implémenter dans des configurations basiques.

1. Tunnel avec encapsulation dans IP - protocole 41

a. Principes de l’encapsulation

Cette méthode va s’appliquer lorsque nous sommes obligés de passer par un réseau qui n’est qu’en IPv4 pour faire communiquer des hôtes ou des sites qui eux sont en IPv6.

Pour cela nous allons encapsuler les paquets IPv6 dans des paquets IPv4 selon le mécanisme décrit par le RFC 2473 de décembre 1998. Cela se fera directement au niveau de la couche IP avec un identifiant de protocole 41 (comme nous avons l’identifiant 6 pour TCP, 17 pour UDP ou 47 pour GRE, entre autres).

La mise en tunnel étant considérée comme un franchissement de routeur, le paquet d’origine voit la valeur de son champ Hop Limit décrémentée de 1.

Un en-tête IPv4 est ensuite ajouté au paquet IPv6 pour permettre de l’acheminer en IPv4 d’une extrémité à l’autre du tunnel.

Une fois arrivé à l’extrémité distante du tunnel, le mécanisme inverse intervient avec extraction de la partie IPv6 par le routeur distant et remise sur le réseau local du paquet IPv6 d’origine.

Nous parlons ici de routeurs mais c’est au sens large. En effet, les extrémités du tunnel peuvent également être prises en charge par des firewalls, à condition que ceux-ci supportent les protocoles souhaités. Pour le moment ce sont quand même les routeurs...

Translations d’adresse

En plus du dual-stack et du tunneling, il existe donc une troisième grande famille de techniques pour faire cohabiter IPv6 et IPv4 : la translation d’adresses.

Celle-ci est principalement utilisée pour permettre à des postes uniquement IPv6 de contacter sur Internet des postes en IPv4. Dans ce cas, nous pouvons recourir à une des techniques disponibles pour translater les adresses entre IPv6 et IPv4 lors des connexions intervenant entre le LAN et Internet.

Cette translation peut intervenir à différents niveaux des couches protocolaires utilisées par TCP/IP. Voici les protocoles les plus connus :

  • NAT-PT (Network Address Translation - Protocol Translation).

  • NAPT-PT (Network Address Port Translation - Protocol Translation).

  • NAT64 et DNS64.

Faisons rapidement le tour de ces protocoles.

1. NAT-PT et NAPT-PT

Ces protocoles, décrits dans le RFC 2766, ont été déclarés obsolètes et ne doivent plus être utilisés (RFC 4966). Nous ne les décrirons donc pas ici.

2. NAT64 - DNS64

Cette translation permet à des postes en IPv6 de se connecter à des serveurs ou à d’autres systèmes restés en IPv4. Le NAT64, codifié dans le RFC 6146 d’avril 2011, peut être associé au protocole DNS64 (RFC 6147 d’avril 2011) afin de s’affranchir de toute configuration sur les clients eux-mêmes...

6PE

Cette technique réservée aux opérateurs permet de transporter un flux IPv6 sur un réseau MPLS basé sur IPv4. Le RFC 4798 de février 2007 détaille son fonctionnement.

Les préfixes IPv6 sont annoncés par du BGP interne (i-BGP).

ALG (Application Layer Gateway ou passerelle applicative)

Dans ce type de technique, le dispositif consiste à recourir à un proxy doté à la fois d’une connexion IPv4 et d’une connexion IPv6.

Le principe est assez simple : un hôte IPv4 souhaitant par exemple envoyer un mail va se connecter en SMTP sur une passerelle SMTP qui va décoder son envoi en termes de protocole (récupération des données de l’enveloppe, du contenu du message, des pièces jointes), puis le recoder en IPv6 à destination du serveur SMTP du destinataire en IPv6. Nous pourrions imaginer la transmission inverse entre un client IPv6 vers un serveur SMTP IPv4.

Le même principe peut s’appliquer à un navigateur web en IPv4 cherchant à se connecter à un serveur en IPv6, ou bien encore à un client FTP ou à un client SIP.

La technique sera donc réservée à une liste assez limitée de protocoles faisant l’objet d’un décodage applicatif. Parmi les plus courants, nous pouvons citer :

  • HTTP

  • SMTP

  • POP

  • IMAP

  • FTP

  • DNS

  • SIP

Ces passerelles applicatives sont assez simples à mettre en œuvre. Par contre, elles ne peuvent pas concerner tous les protocoles mais une petite partie d’entre eux (reconnaissons que ce sont néanmoins les plus utilisés). De plus, elles nécessitent généralement de faire...

Comment faire un choix ?

Il est évidemment très difficile de réaliser un classement définitif des différentes solutions et les avis divergent assez fréquemment sur l’avenir et la pertinence des différents protocoles envisagés.

Nous essayons de les répartir ici par type de "client". Le choix entre les protocoles eux-mêmes se fera en fonction du but à atteindre et des contraintes posées par les réseaux/postes à relier.

Par contre, nous pouvons raisonnablement donner un ordre de préférence parmi les types de techniques :

1. Dual-stack : à préférer lorsque c’est possible puisqu’elle apporte une grande souplesse dans les communications et une connexion IPv6 native. Par contre, elle impose d’une part une double configuration de tous les matériels ou systèmes concernés, et d’autre part elle implique une bonne gestion de la sécurité.

2. Tunnel : c’est la deuxième possibilité à mettre en œuvre, notamment quand une partie des réseaux ne peuvent pas être placés en dual-stack. Elle présente par contre l’inconvénient de diminuer le MTU, de ne pas toujours bien traverser les NAT et de compliquer un peu le diagnostic des problèmes de transmission.

3. Translations : solution de repli quand les autres...

Pour le futur : tunnels IPv4-IPv6

1. Le problème

Il arrivera, dans un futur probablement assez lointain, un temps où les infrastructures principales d’Internet, notamment celles des opérateurs, ne fonctionneront plus qu’en IPv6. Le côté lointain n’est pas si certain car la charge supportée par les opérateurs réseau pour maintenir les deux protocoles, notamment par du dual-stack, sur la majorité de leurs équipements peut rapidement les amener à presser le pas.

Il faudra alors choisir entre abandonner totalement le support d’IPv4, forçant ainsi les retardataires à migrer vers IPv6, ou bien déployer des solutions pour véhiculer du trafic IPv4 sur des liens IPv6 (donc le problème inverse de celui posé au début de ce chapitre).

La première option n’est envisageable que quand le poids économique des retardataires deviendra totalement négligeable. C’est pourquoi il est intéressant d’aborder rapidement ce qui est possible pour la deuxième option puisqu’il est vraisemblable que ce sera la solution choisie dans un premier temps.

2. Les principales solutions

a. Tunnel statique (4to6)

Ici nous encapsulons de l’IPv4 dans de l’IPv6. C’est donc l’inverse de ce qui était pratiqué en début de chapitre. Les avantages et contraintes sont...

Pour aller plus loin

1. Des RFC

  • RFC 2473 pour l’encapsulation IP dans le protocole 4.

  • RFC 3056 pour les tunnels 6to4.

  • RFC 3068 pour l’adresse unicast de relais 6to4.

  • RFC 5969 pour 6RD.

  • RFC 4380 pour Teredo.

  • RFC 5572 pour TSP.

  • RFC 6180 pour les mécanismes de transition IPv4-IPv6 à privilégier.

  • RFC 4213 pour le dual-stack.

  • RFC 3484 pour le choix des adresses à utiliser.

2. Quelques liens

3. Brokers les plus connus

Nous ne citerons ici que les brokers les plus utilisés fournissant un service accessible depuis l’Europe.