Sequence 4 Vfinal
Sequence 4 Vfinal
Sequence 4 Vfinal
Séquence 4
Attribution - Partage dans les Mêmes Conditions 4.0 International (CC BY-SA 4.0)
Avertissement Ce résumé n'indique que certaines des dispositions clé de la licence. Ce n'est pas une licence, il
n'a pas de valeur juridique. Vous devez lire attentivement tous les termes et conditions de la licence avant d'utiliser
le matériel licencié.
Creative Commons n'est pas un cabinet d'avocat et n'est pas un service de conseil juridique. Distribuer, afficher et
faire un lien vers le résumé ou la licence ne constitue pas une relation client-avocat ou tout autre type de relation
entre vous et Creative Commons.
http://creativecommons.org/licenses/by-sa/4.0/legalcode
• Partager — copier, distribuer et communiquer le matériel par tous moyens et sous tous formats
L'Offrant ne peut retirer les autorisations concédées par la licence tant que vous appliquez les termes de cette
licence.
Partage dans les Mêmes Conditions — Dans le cas où vous effectuez un remix, que vous transformez,
ou créez à partir du matériel composant l'Oeuvre originale, vous devez diffuser l'Oeuvre modifiée dans les même
conditions, c'est à dire avec la même licence avec laquelle l'Oeuvre originale a été diffusée.
No additional restrictions — Vous n'êtes pas autorisé à appliquer des conditions légales ou des mesures
techniques qui restreindraient légalement autrui à utiliser l'Oeuvre dans les conditions décrites par la licence.
Notes: Vous n'êtes pas dans l'obligation de respecter la licence pour les éléments ou matériel appartenant au
domaine public ou dans le cas où l'utilisation que vous souhaitez faire est couverte par une exception.
Aucune garantie n'est donnée. Il se peut que la licence ne vous donne pas toutes les permissions nécessaires
pour votre utilisation. Par exemple, certains droits comme l es droits moraux, le droit des données personnelles
et le droit à l'image sont susceptibles de limiter votre utilisation.
Introduction ..................................................................................................................................7
Conclusion .................................................................................................................................77
Pour en savoir plus .............................................................................................................78
Remerciements .......................................................................................................................78
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 et l'apparition de la pénurie complète des
adresses IPv4. 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 dispositif: 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 (b) de la figure 1 montre que depuis 2011, la pénurie est aigüe par cette chute du
taux de consommation des adresses.
(a) (b)
Figure 1: Cumul de consommation des adresses IPv4 et taux de consommation.
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. C'est ce que montre la figure 2 [3]. Cette figure représente sous forme d'un
histogramme l'état des allocations et donc la situation de l'adressage dans l'Internet IPv4.
L'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 publiques sous des conditions draconiennes et donc le plus souvent
n'allouent plus d'adresses publiques.
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. Les nouveaux usages de l'Internet avec les nouveaux objets connectés
demandent énormément d'adresses. Dépasser la pénurie d'adresse, c'est ouvrir la voie à de
nouveaux services, c'est laisser la porte ouverte à de nouveaux acteurs innovants, c'est
pourvoir créer des nouveaux marchés pour des nouveaux besoins. Le passage à IPv6 devient
une nécessité. Car, 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 indispensable 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
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. Dans un article [7] , Geof Huston dresse une liste de fausses assertions et de
rumeurs pour justifier de ne pas commencer la travail de migration vers IPv6. Si ces fausses
assertions circulent, elles démontrent à quel point le besoin de formation et d'information sur la
situation de l'Internet est nécessaire. Nous espérons que ce cours contribuera à combler ce
manque.
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. Pire, continuer à déployer des systèmes IPv4 rend la nécessaire migration vers IPv6
plus lente et plus coûteuse. Comment procéder pour réaliser cet investissement? C'est ce que
nous allons étudier par la suite.
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.
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 des adresse IPv4 disponibles. 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.
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 encapsule 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.
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 par des NAT qui agissent au niveau de l'en-tête IP. 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.
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:
1. 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.
2. une phase interne consistant à déployer IPv6 pour les communications internes.
3. une phase externe dans laquelle il s'agit de traiter la connectivité de son Intranet avec
l'Internet.
Les auteurs [9] montrent aussi que selon l'usage du réseau (mobiles, fixe ou de voix sur IP) la
stratégie de migration n'est pas la même et doit prendre en compte leurs spécificités. 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
7. ↑ Huston, G. (2011). Cisco Internet Protocol Journal, Vol. 14, No. 1, pp. 14-21, March.
Transitional Myths
8. ↑ Soussi, M. (2011). AFNIC’s Issue Papers. IPv6, A Passport For The Future Internet
9. ↑ Boucadair, M.; Binet, D. et Jacquenet, C. (2011). Techniques de l'ingénieur. Transition
IPv6 - Outils et stratégies de migration
• Huston, G. (2014) The Internet in Transition: The state of the transition to IPv6 in Today's
Internet and of measures to support the continued use of IPv4.
• Huston, G (2015). Addressing 2014 - And then there were 2!
• Van Beijnum, I. (2014). With the Americas running out of IPv4, it’s official: The Internet is
full
Statistiques sur IPv6
• APNIC IPv6 Deployment Report
• APNIC Lab List of statistics
• APNIC IPv6 deployment support site. (Useful and up to date information on IPv6')
• RIPE IPv6 statistics
• RIPE Lab List of statistics
• Internet Society Liste de pointeurs
Techniques de transition
• Wikipedia IPv6 transition mechanism
Afin d'avoir un déploiement progressif d'IPv6, elle s'oriente vers un déploiement en double pile
qui est un des premiers mécanismes de coexistence, et le plus recommandé. En effet, il évite
les problèmes liés à l'utilisation des tunnels. C'est la technique de transition originellement
envisagée comme nous le rappellerons. La suite de ce document décrit les principaux éléments
relatifs à l’activation d’une double pile. Dans un premier temps, l'adressage et la configuration à
mettre en place sont étudiés. Ensuite, les points propres à chacune des principales applications
réseaux (DHCP, DNS, parefeu, supervision) à prendre en compte lors du passage en IPv6 sont
soulevés. Enfin, les problèmes induits par l’utilisation de la double pile, ainsi que leurs solutions,
sont précisés.
Méthode
L'intégration de IPv6 dans un réseau d'entreprise demande de la méthode comme le montre le
RFC 7381. Une phase d'étude et d'analyse est un préalable indispensable pour identifier les
points bloquant à l'intégration de IPv6 dans le contexte professionnel.
L'intégration d'IPv6 commence par la désignation d'une personne en charge de suivre et
coordonner les actions liées à l'intégration de IPv6. Sa première tâche consistera à dresser un
inventaire des équipements du réseau afin de déterminer ceux qui supportent IPv6. Cet
inventaire va être un élément clef pour orienter le choix des techniques de transition. Par
exemple, si de nombreux segments du réseau ne sont pas "IPv6 compatible", il n'est pas
question de tout jeter et de racheter, mais il faudra retenir la technique de transition adaptée à
son réseau. En plus du matériel, il faut également faire l'inventaire des logiciels utilisés pour
déterminer lesquels supportent IPv6 et lesquels nécessitent une mise à jour.
Les applications métiers developpées en interne doivent être modifiées le plus tôt possible afin
de les rendre capables de manipuler des adresses sur 128 bits. Le RFC 4038 propose des
méthodes pour développer du code indépendant des versions de IP. Dans une note [5] S.
Bortzmeyer propose d'utiliser des bibliothèques de langage de plus haut niveau d'abstraction.
Ainsi les détails de la communication ne remontent pas jusqu'au développeur d'application. Le
RFC 6724 indique comment selectionner les adresses sources. Le RFC 6555 liste et solutionne
les problèmes liés à la baisse de performance parfois observée dans les déploiements double
pile. Ce dernier point est développé dans la section "Déploiement au niveau des services" de
cette activité.
Un point dans cette phase d'étude à ne pas négliger concerne la sécurité. L'essentiel des failles
de sécurité d'un réseau IPv6 est commune avec celles d'un réseau IPv4. Celles qui sont
spécifiques à IPv6 peuvent être dues au manque de support d'IPv6 par les fournisseurs
d'équipement de sécurité tels que les NIDS, pare-feu, outils de monitoring, .... Ces dispositifs
doivent supporter IPv6 aussi bien que IPv4 mais ce n'est pas toujours le cas. La faible maturité
du code source est également une faille relevée par le RFC 7381. Les problèmes de sécurité
spécifiques à IPv6 peuvent aussi être dus à la configuration. Les pare-feu et ACL des logiciels
peuvent avoir des règles strictes pour IPv4 mais beaucoup moins pour IPv6. Étant donné que
leur réseau est beaucoup moins sollicité en IPv6, des administrateurs sont tentés de ne pas
fournir autant d'efforts que pour la sécurisation de IPv4. L'utilisation d'adresses protégeant la vie
privée des utilisateurs [RFC 4941] complique également la tâche des administrateurs réseaux.
Elles sont un frein pour une identification rapide des noeuds. Les mécanismes de transition
reposant sur des tunnels encapsulant IPv6 sur les réseaux IPv4 apportent également des failles
inhérentes à l'utilisation des tunnels [RFC 7123]. S'ils sont mal déployés, ils peuvent créer des
back doors qui offrent un moyen de passer outre les sécurités de l'entreprise (en particulier
avec Teredo et 6to4 [RFC 6180]).
Même si IPv6 n'est pas déployé dans un réseau, il faut malgré tout prendre en compte IPv6
pour la sécurisation. En effet, la plupart des hôtes sont désormais en double pile, ils ont une
adresse IPv6 lien local qui peut être utilisée pour la communication entre les équipements d'un
même lien. Ce trafic peut être filtré sur les équipements de niveau 2 s'ils le permettent. La
double pile rend le noeud sensible aux attaques par fausses annonces de routeurs ( rogues RA)
[RFC 6104]. Ces annonces configurent chez les hôtes une fausse connectivité IPv6. Les hôtes
enverront le trafic au routeur par défaut, lequel pourra fournir un connectivité IPv6 aux
utilisateurs via des tunnels et mettre en œuvre des attaques de type MitM (Man in the Middle).
Le RFC 7113 propose une méthode d'analyse de l'en-tête IPv6 appelée RA-Guard à mettre en
oeuvre au niveau des commutateurs. En dépit du fait que les annonces de routeurs illégitimes
soient la plupart du temps le fait d'erreurs de configuration de machines hôtes qui émettent des
RA, il ne faut pas néanmoins les négliger car une connectivité IPv6 non fonctionnelle ou de
mauvaise qualité va affecter la qualité de service perçue par l'utilisateur (voir le paragraphe
problèmes liés à la double pile de cette activité). Notons que la sécurisation des mécanismes
d'auto-configuration n'est pas un problème spécifique à IPv6. En IPv4, des serveurs DHCP mal
intentionnés (idem pour DHCPv6) peuvent également envoyer des informations erronées suite
à une requête DHCP. Aussi bien les RA que le DCHP peuvent être sécurisé via l'authentification
des messages mais ces solutions sont très peu déployées en pratique.
L'impact des différences entre les deux versions d'IP est souvent mal évalué. Par exemple
l'utilisation d'un préfixe IPv6 GUA pour les hôtes et l'absence de NAT notamment dans les
routeurs SOHO (Small Office / Home Office) est perçue comme une faille de sécurité. En plus
des règles de filtrage nécessaires à la sécurisation, les RFC 6092 et RFC 7084 imposent que
les routeurs SOHO filtrent par défaut les connections venant de l'extérieur au réseau. De cette
manière, l'absence de NAT dans le cadre d'IPv6 n'ouvrira pas plus de faille de sécurité que sur
les routeur SOHO en IPv4. La sécurité de IPv6 peut aussi être sur-évaluée comme dans les
attaques par balayage de l'espace d'adressage. Malgré la taille gigantesque de l'espace
d'adressage en IPv6, le RFC 5157 montre que IPv6 est malgré tout sensible aux attaques par
balayage et qu'il faut s'en protéger. A cet effet, la RFC 6018 propose l'utilisation de greynets
pour IPv4 et IPv6.
Ensuite vient la problématique du routage interne. Les principaux protocoles de routage
intégrent depuis longtemps IPv6. OSPFv3 supporte IPv4 et IPv6 mais différe de OSPFv2 sur
certains points. Notons qu'il est possible d'utiliser des protocoles de routage différents pour le
trafic IPV4 et IPV6. Le document [6] (en cours d'étude au moment de la rédaction de ce
document) détaille les choix de conception spécifiques au routage IPv6.
La phase de préparation inclut également le plan d'adressage et l'allocation des adresses. Ces
points sont abordés en détail dans la suite de ce document.
Il apparait donc clairement que l'intégration de IPv6 nécessite d'impliquer de nombreux corps de
métiers. Les formations adéquates doivent donc être proposées au personnel de l'entreprise.
Cela inclut aussi bien les administrateurs système et réseau, ceux en charge du routage, de
l'infrastructure, les développeurs que le personnel des centres d'appel du support technique. A
titre d'exemple, citons l'article [7] qui rapporte l'expérience de la migration en IPv6 d'un
industriel.
dessous montrent que c'est le cas pour les OS les plus courants. Pour chacun des OS, une
adresse lien-local (link-local address) a été allouée [voir la séquence 1]. Elle est utilisée pour les
communications locales uniquement comme par exemple le mécanisme de découverte de
voisins [RFC 4861]. Elle n'est ni routable, ni, par conséquent, utilisable pour une communication
indirecte (passant par un routeur).
Pour que cette vérification soit une formalité, il est nécessaire bien en amont de l'intégration
d'IPv6 d'exiger dans les achats de matériels et logiciels la disponibilité d'IPv6 ou la compatibilité
[8]. Par exemple, c'est ce qu'a fait le département nord-américain de la défense [9].
MacOSX 10.9.2
ifconfig en0
Linux 2.6.32:
ifconfig eth0
Windows:
c:\ ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix.:
IPv6 Address. . . . . . . . . . .: 2001:db8:21da:7:713e:a426:d167:37ab
Temporary IPv6 Address. . . . . .: 2001:db8:21da:7:5099:ba54:9881:2e54
Link-local IPv6 Address . . . . .: fe80::713e:a426:d167:37ab%6
IPv4 Address. . . . . . . . . . .: 157.60.14.11
Subnet Mask . . . . . . . . . . .: 255.255.255.0
Default Gateway . . . . . . . . .: fe80::20a:42ff:feb0:5400%6
IPv4 Default Gateway . . . . . .: 157.60.14.1
Tunnel adapter Local Area Connection* 6:
Connection-specific DNS Suffix .:
IPv6 Address. . . . . . . . . . .: 2001:db8:908c:f70f:0:5efe:157.60.14.11
Link-local IPv6 Address . . . . .: fe80::5efe:157.60.14.11%9
Site-local IPv6 Address . . . . .: fec0::6ab4:0:5efe:157.60.14.11%1
Default Gateway . . . . . . . . .: fe80::5efe:131.107.25.1%9
fe80::5efe:131.107.25.2%9
Tunnel adapter Local Area Connection* 7:
Media State . . . . . . . . . . .: Media disconnected
Préfixe ULA
Le préfixe ULA [RFC 4193] est l'équivalent dans son usage aux préfixes privés d'IPv4, mais
quasi unique et sans registre central. Ce dernier point rend le préfixe ULA non agrégeable, et
donc les adresses ULA non routables sur l’Internet. La caractéristique d'unicité du préfixe ULA
supprime le risque de conflit entre les 2 plans d'adressage lorsque 2 sites privées adressage
ULA fusionnent, ce qui est loin d'être le cas en IPv4.
Ce RFC propose, dans un espace réservé fc00::/7, de constituer selon un algorithme des
adresses quasi-uniques. Le format des adresses de type ULA est présenté dans l'activité 13. Il
est rappelé que le format d'adresse ULA se compose d'un préfixe de 48 bits dont 40 bits
(Global ID , GID) pour identifier le site. Les 40 bits du GID sont générés en utilisant une fonction
de hachage (i.e. SHA-1) de l'heure et de l'adresse MAC de la machine exécutant l’algorithme
détaillé dans le RFC. Outre le script, sous licence libre GPL, développé par Hartmut Goebel
indiqué dans l'activité 13, il existe des sites pour générer automatiquement un préfixe ULA
comme http://unique-local-ipv6.com/ ou http://www.kame.net/~suz/gen-ula.html , ou bien encore
celui du SIXXS qui, en plus de fournir un préfixe ULA, l'enregistre dans un registre.
Notons que les raisons conduisant à l'utilisation des adresses privées d'IPv4 ne s'appliquent
plus dans le cas d'IPv6. Citons:
• Manque d’adresses IP publiques. Dans l’internet IPv4, la motivation principale pour
l’utilisation des adresses privées est que l’espace d’adressage publique n’est pas
suffisant pour l’ensemble des machines. Dans le cas d’IPv6, cette motivation n’a
clairement plus lieu d’être.
• Accroitre le niveau de sécurité. L’utilisation des adresses privées dans IPv4 induit que
les machines situées derrière un NAT sont plus difficilement accessibles de l’extérieur
par un unique effet de bord. Cela rend les machines derrière le NAT moins vulnérables
aux attaques extérieures. Certains estiment donc que les adresses GUA exposent les
machines directement aux attaquants de l’Internet et trouvent là une justification à
l’utilisation d’adresses privées. On notera que cet argument est fallacieux, car avec un
adressage privé, il faut malgré tout utiliser un pare-feu pour prévenir les attaques, ce qui
montre que la sécurisation n'est pas une question de type d'adresse publique ou privée.
Donc, une simple règle sur un pare-feu pour interdire l’ouverture de connexion depuis
l’extérieur peut donc fournir le même niveau de sécurité qu’un NAT.
• Faciliter de déploiement. L'accès Internet pour un site avec un adressage ULA
nécessite un NAT66 dénommé aussi NPTv6 (Network Prefix Translation) [RFC 6296]
pour le changement d’adresses ULA en GUA. En plus de l'achat et de la maintenance de
cet équipement, ce sont certaines tares du NAT qui reviennent dans le réseau IPv6 [RFC
5902]. L'usage d'ULA dans le cas d'un accès Internet n'économisera pas l'obtention d'un
préfixe GUA (pour l'extérieur du NAT). Au final, un réseau basé sur les adresses ULA
introduit un travail plus complexe et plus important qu’un équivalent GUA.
Aussi, les seuls cas où l’utilisation des adresses ULA est réellement motivée sont les réseaux
de tests (enseignement, bancs d'essais, déploiement de prototype) et les réseaux necessitant
un niveau de sécurité très élevé par un isolement complet comme les réseaux tactiques ou
d'hôpitaux. Le RFC 6296 propose une autre utilisation d'un plan d'adressage construit sur un
préfixe ULA. Pour des sites de taille petite ou moyenne, un préfixe ULA couplé à un NAT66,
offre une solution simple pour changer d'opérateur ou pour gérer la multidomiciliation sans
nécessiter un préfixe PI (Provider Independent). Ainsi en cas de changement de fournisseur
d'accès, la renumérotation n'impactera que le NAT. Les adresses ULA forment ainsi une sorte
de substitut aux adresses PI. Cette idée peut avoir un sens tant que des mécanismes simples
de renumérotation du réseau ne seront pas effectifs [RFC 7010]. Cette question de la
renumérotation n'est pas une question simple { RFC 5887]. Dans tous les autres cas, les
adresses GUA sont plus faciles à deployer et à administrer. C'est aussi le conseil donné par
l'auteur de cette note [10].
Préfixe GUA
Pour rappel, les préfixes GUA sont sous l'autorité de l’IANA [11] qui délègue aux RIR (Regional
Internet Registry) l'allocation. Les RIRs délèguent eux-mêmes aux NIR (National Internet
Registery) puis aux LIR (Local Internet Registery) et/ou finalement aux FAI. En Europe, le RIR
est le RIPE-NCC. Il délègue directement aux FAI/LIR sans passer par des NIR. Les LIR et
certains FAI se voient déléguer des préfixes /32. Ils ont obligation d’allouer les blocs IPv6 à des
utilisateurs finaux tels que des organismes ou des FAI. Le RIPE-NCC ne prévoit pas de
recommandation sur la taille des préfixes alloués par les LIRs aux FAIs.
Le préfixe GUA peut être alloué par un FAI, par un LIR ou par un RIR. Le choix s'effectue selon
le type de préfixe à détenir. Si le préfixe est destiné à un site, on parlera d'un préfixe PA
(Provider Assigned ou Provider Aggregatable); si le site est multi-domicilié, il faut un préfixe dit
PI (Provider Independent).
Le préfixe de type PA est attribué par le FAI/LIR. Il n'y a pas de formalités particulières à remplir,
le préfixe est alloué en même temps que la connectivité. Le préfixe est donc spécifique à un site
et associe ce site à un opérateur. Ce dernier assure les services suivants:
• allocation du préfixe à l’organisme,
• transport du trafic de l’utilisateur,
• annonce d'un préfixe BGP dans lequel est inclus celui du site.
La taille du préfixe alloué varie selon les opérateurs. Certains donneront un /52 , voir un /60. Le
préfixe alloué est au maximum /64. Si un site doit avoir un préfixe de moins de 48 bits, la
demande doit être motivée. Si le FAI change, il faut rendre le préfixe et renuméroter le réseau
du site, et cette action est pénible [RFC 5887]. Pour éviter ce désagrément, il est possible de
demander un préfixe PI auprès d'un RIR. Ce type de préfixe est une nécessité pour les sites
multi-domiciliés ou pour les sites qui doivent changer de FAI sans changer d’adresses. La
demande de préfixe doit être faite directement à RIPE-NCC qui attribue un préfixe /48 ou un
préfixe de longueur inférieure si la demande est motivée. Il faut que l'organisation qui en fait la
demande soit membre de RIPE ou que la demande soit parrainnée par un FAI/LIR membre de
RIPE. Il est ensuite nécessaire que les FAI annoncent et routent le préfixe PI.
A noter que si un FAI ne propose pas IPv6, il est possible d'utiliser un service de tunnels.
Certains d’entre eux (e.g. hurricane electric) attribuent gratuitement un préfixe /48 lors de
l’établissement d'un tunnel.
l'article [12] , l'auteur montre comment ces critères doivent servir à guider la définition d'un plan
d'adressage pour un site. Comme nous l'avons vu dans l'activité 16, il est possible de structurer
le routage interne de plusieurs manières:
• reproduire le schema IPv4 déjà déployé. Le préfixe privé 10.0.0.0/8 offre 24 bits à
l’administrateur pour la structuration des sous réseaux. En réalité, les plus petits sous-
réseaux ont rarement des préfixes supérieur à /24 , ce laisse 16 bits pour la structuration.
Dans la plupart des cas, il est donc possible de reproduire le plan d’adressage privé IPv4
à l’aide des 16 bits du SID.
• numéroter de manière incrémentale les sous réseaux (e.g. 0001,0002,0003…). Simple à
mettre en oeuvre, cette technique peut cependant conduire à un adressage plat et
difficile à mémoriser. Elle peut également complexifier l’écriture des règles de filtrage
ainsi que l’agrégation.
• utiliser le numéro de VLAN, ce qui est tout à fait possible puisque le VLAN ID n’occupe
que 12 bits. Cette méthode permet d’eviter de mémoriser plusieurs niveaux de
numérotation.
• séparer les types de réseaux et utiliser les chiffres de gauche pour les désigner. D'autres
niveaux de structuration peuvent être définis sur les bits restant. Cette technique permet
de faciliter les règles de filtrage, tout en utilisant des règles appropriées à la gestion de
ces sous-réseaux pour la partie de droite. À titre d'exemple, le tableau 1 contient le plan
de numérotation d'une université localisée sur plusieurs sites prenant en compte les
différentes communautés d'utilisateurs. Ainsi, le préfixe:
• 2001:DB8:1234::/52 servira pour la création de l'infrastructure, donc en particulier
les adresses des interfaces des routeurs sont prises dans cet espace;
• 2001:DB8:1234:8000::/52 servira pour le réseau Wi-Fi des invités. La manière dont
sont gérés les 12 bits restants du SID n'est pas spécifié;
• 2001:DB8:1234:E000::/52 servira pour le réseau des étudiants. L'entité représente
la localisation géographique du campus. Dans chacun de ces campus, il sera
possible d'avoir jusqu'à 16 sous-réseaux différents pour cette communauté.
Notons qu’un réseau peut être entièrement en double pile ou partiellement, à condition que les
segments IPv4 soient masqués par des tunnels dans lesquels IPv6 est encapsulé dans IPv4.
Tous les équipementiers de coeur de réseau supportent ces mécanismes, ce qui permet
rapidement d'acheminer du trafic IPv6 dans une infrastructure IPv4 existante. Lorsque le
déploiement est partiel, une attention particulière doit être portée au protocole de routage utilisé,
l'activation de fonctions permettant de gérer plusieurs topologies (v4 et v6) pouvant s'avérer
nécessaire.
Configuration d'adresses
La configuration des interfaces réseaux en IPv6 peut s'effectuer selon plusieurs méthodes.
Avec la méthode SLAAC (StateLess Address Auto Configuration) [RFC 4862], l’interface génère
elle-même ses adresses à partir des informations émises par le routeur local. Si SLAAC est
sans doute plus simple et plus rapide à déployer, elle peut présenter des inconvénients:
• Absence du DNS. SLAAC n'intègre pas de champ pour transmettre le serveur DNS local.
Ce n’est pas un problème si l’adresse d’un serveur DNS est obtenue via le DHCP de
l’interface IPv4, mais cela rend donc indispensable l’existence d’une telle interface.
Toutefois, le RFC 6106 rend désormais possible l’ajout d’une option DNS dans les
messages RA (Router Advertisment).
• Absence de contrôle sur les adresses. Il n'y a pas de moyen fiable d’enregistrer
l’association adresse MAC-adresse IP. Le logiciel NDPMON (Neighbor Discovery
Protocol Monitor) permet cependant d'écouter le réseau en permanance et de mémoriser
les correspondances entre les adresses IP et MAC.
Avec DHCPv6 [RFC 3315], le client obtient son adresse et ses informations auprès du serveur
DHCP. Ce dernier peut donc contrôler les informations indiquées à chaque machine, contrôler
les adresses attribuées et mémoriser ces dernières. Le serveur DHCP est aussi l'endroit logique
où faire des mises à jour dynamiques du DNS pour refléter les changements d'adresses IP.
Comme DHCP offre davantage de contrôle que SLAAC, DHCP est en général apprécié dans
les réseaux d'organisations.
Lorsque DHCP est utilisé dans sa version sans état comme le permet le RFC 3736 , il sert à
distribuer uniquement des paramètres statiques comme les adresses des serveurs de noms.
Dans cette situation la méthode SLAAC est utilisé pour allouer les adresses et le noeud
récupérer les informations manquantes à sa configuration par le serveur DHCP sans état.,
Lors du déploiement de DHCPv6 en double pile, l’inconvenient majeur va être la gestion des
informations recueillies via des sources différentes. Ce problème bien connu est notamment
décrit dans le RFC 4477. En effet, des informations pouvant être reçues à la fois du DHCPv4 et
du DHCPv6, il peut y avoir inconsistance. Comme par exemple, des informations relatives à la
pile IPv6 renseignées manuellement dans la configuration de l’OS (e.g. /etc/resolv.conf)
peuvent être effacées par le client DHCPv4. Le client doit savoir s’il doit utiliser les informations
les plus récentes ou fusionner ces informations selon des critères bien précis. Ce problème
peut être d’autant plus prononcé si les réseaux IPv6 et IPv4 n’ont pas les mêmes
administrateurs.
Résolution d’adresses
Les points importants relatifs au DNS (Domain Naming System) dans le déploiement d'IPv6
sont présentés dans le RFC 4472. Pour IPv6, le DNS est d'autant plus indispensable que les
adresses sur 128 bits ne sont pas simples à lire ni à mémoriser. Le DNS est utilisé pour
associer les noms avec les adresses IP. Un nouvel enregistrement (resource record) appelé
AAAA a été défini pour les adresses IPv6 [RFC 3596]. Les résolveurs DNS (clients du DNS)
doivent être capables d’interpréter les enregistrements A pour IPv4 et les enregistrements
AAAA pour IPv6. Lorsque les deux types sont retournés par le serveur DNS, le résolveur doit
trier l’ordre des enregistrements retournés de manière à favoriser IPv6. Par ailleurs, le client (de
la couche application) doit pouvoir spécifier au résolveur s’il souhaite obtenir les entrées de type
A ou AAAA.
Administration du réseau
Il est indispensable que IPv6 et IPv4 soient iso-fonctionnels. Pour ce faire, il faut maitriser les
outils d'administration réseau IPv6 et en particulier s'assurer du bon fonctionnement des
services et équipements IPv6.
L’administration d’un réseau peut se décomposer en trois tâches qui sont la supervision, la
métrologie et la sécurité. Les pare-feux sont depuis longtemps capables d’appliquer leurs règles
de filtrage au trafic IPv6. Il est à noter que les mécanismes de chiffrement et les certificats n’ont
pas été impactés par IPv6. Les outils de métrologie sont généralement assez faciles à adapter
à IPv6 puisqu’il n’y a peu de dépendance entre les logiciels.
La difficulté principale réside sur les outils de supervision. Le protocole de supervision SNMP
sert à collecter dans des bases de données appelées MIBs (Management Information Base)
diverses informations qui sont stockées sur les équipements réseaux. Net-SNMP intègre IPv6
depuis 2002. Cette intégration était nécessaire pour interroger les noeuds uniquement IPv6.
Cette intégration d'iPv6 n'était pas indispensable dans le cas d'un réseau double pile puisqu'il
est possible d'interroger un équipement via SNMP depuis son interface IPv4. L'évolution des
MIBs a été beaucoup plus délicate mais elle est achevée et la RFC 2851 prévoit que l'adresse
IP soit de longueur variable et constituée de deux champs, un pour identifier le type d’adresse
et un pour l’adresse elle-même.
Les principales solutions de supervision (e.g. Nagios) et équipementiers supportent désormais
largement IPv6. Il faut malgré tout s’assurer que l’ensemble des outils utilisés dans le cadre de
SNMP supportent la version unifiée et modifiée de la MIB.
Trying 2001:db8:1002:1:2b0:d0ff:fe5c:4aee...
Connected to rhadamanthe.ipv6.rennes.enst-bretagne.fr.
Escape character is '^]'.
login:^D
telnet bloodmoney
Trying::ffff:193.52.74.211...
Connected to bloodmoney.rennes.enst-bretagne.fr.
Escape character is '^]'.
login:
Nous venons de le voir: une application compatible IPv6 peut dialoguer indifférement en IPv4 et
en IPv6, alors qu'une application utilisant un format d'adresse IPv4 restera limitée à ce
protocole. Ceci ramène au problème du développement du code lié à la communication des
applications. Plus généralement, le développement d'applications IPv6 compatible demande de
nouvelles méthodes et pratiques au niveau de la programmation du fait du changement de la
longueur de l'adresse IP, de la suppression de la diffusion d'IPv4 [13]. Pour rendre une
application "IPv6 compatible", il faut qu'elle soit compilée ou recompilée avec l'interface de
programmation (API) IPv6 ou, pour les applications écrites avec un langage de haut-niveau
d'abstraction, que la bibliothèque intègre IPv6. Ceci n'est bien sûr possible que sur les
équipements pourvus d'un système ayant une pile IPv6, ce qui est aujourd'hui dans la quasi-
totalité des cas vrai. Reste le problème des applications non recompilables (code source non
disponible): ce genre de situation est traité par la suite dans l'activité de traduction.
Devant le coût des développements, la problématique de la compatibilité des applications à
IPv6 doit être traitée dès le début dans la stratégie de migration vers IPv6.
Dans l'état actuel du déploiement d'IPv6, bien des sites ont une connexion IPv6 totalement ou
partiellement inopérante. Si un serveur fonctionne en IPv4 et en IPv6, et que son client n'a
qu'IPv4, il n'y aura pas de problème. Mais si le client a IPv6, tente de l'utiliser, mais que sa
connectivité IPv6 est plus ou moins défaillante, il aura des temps de réponse très importants.
Les utilisateurs percevront le service comme très dégradé. C’est la raison pour laquelle, encore
aujourd’hui, il y a si peu de sites Internet accessibles en IPv6.
Les problèmes qui apparaissent lors de la phase d’établissement de la connexion sont dus au
fait que le client tente de se connecter séquentiellement aux différentes adresses du service.
IPv6 étant testé en premier lieu, il faut attendre que la tentative de connexion échoue, ce qui
peut prendre plusieurs secondes. Le RFC 6555 propose d’établir les connexions en parallèle et
de ne conserver que la plus rapide. Les navigateurs Internet ont pris en compte ces
recommandations mais les mises en oeuvre divergent comme le rapporte l'article [16] :
• Le navigateur Safari conserve dans une table le délai moyen pour atteindre chaque
adresse du serveur. L’adresse ayant le délai le plus court est utilisée en priorité, mais si
elle ne répond pas avant le délai attendu, l’adresse suivante est essayée. La demande
de connexion est émise en décalé sur les différentes adresses du serveur. La première
connexion établie sera utilisée pour la suite des échanges. Cette solution peut cependant
induire un délai non négligeable si le serveur comporte de nombreuses adresses et que
seule la dernière (celle de plus long délai moyen) est accessible.
• Le navigateur Chrome mesure les délai pour l’obtention des adresses IPv4 et IPv6 via le
DNS. Il tente d’établir une connexion avec le protocole dont l’adresse a été obtenue en
premier. Notons que pour maximiser les chances de réussite, il envoie deux segments
SYN en parallèle avec des ports source differents. Si aucun segment SYN+ACK n’est
reçu après 250ms, un dernier segment SYN est émis depuis un troisième port. Si aucun
segment SYN+ACK n’est reçu après un total de 300ms, le protocole suivant sera essayé.
Dans le cas où un problème apparait avec un seul des protocoles, le délai est donc au
maximum allongé de 300ms. Si un problème apparait avec les deux protocoles, c’est la
méthode par défaut de l’OS qui sera utilisée. Notons que si le RTT est supérieur à
300ms, les deux protocoles seront systématiquement utilisés.
• Le navigateur Firefox implémente strictement les recommandations du RFC 6555 et
essaye les deux protocoles en parallèle.
Des mises en oeuvre similaires à celles des navigateurs sont à développer pour les clients des
différentes applications (e.g. mail, VoIP, chat...). Pour ne pas avoir les inconvénients des accès
séquentiels, il faudrait ne pas attendre l’expiration des temporisateurs de l’OS mais choisir des
temps de garde plus agressifs et ayant moins d’impact pour les utilisateurs. Par exemple, si
IPv6 ne répond pas avant un délai de 300ms ou deux RTT, alors IPv4 est essayé.
Notons cependant que le parallélisme a un effet pervers pour les opérateurs. En effet,
l’utilisation des CGN pour la connectivité IPv4 leur est coûteuse et le maintien des états relatifs
à l’ouverture de chaque connexion consomme des ressources. En suggérant l’ouverture de
plusieurs connexions en parallèle, le RFC 6555 va à l’encontre des intérêts des opérateurs et
potentiellement des utilisateurs si les CGN sont saturés. C'est pourquoi, il suggère d’essayer en
priorité le protocole qui ne générera pas d’état dans le réseau, à savoir IPv6.
Pour les problèmes de MTU, la solution réside dans le fait de forcer les utilisateurs à choisir une
faible MTU, par exemple 1400 octets, dans l'espoir qu'il n'y ait pas un lien sur la route dont la
MTU soit inférieure à cette valeur. Cela peut être fait lors de la configuration de l'interface
réseau ou lors de l'établissement d'une connexion TCP en réduisant la taille maximum des
segments autorisée. Cette réduction est effectuée par le routeur (MSS clamping). Dans le RFC
4821 , les auteurs proposent une solution qui ne repose pas sur ICMP. L'idée consiste à ce que
TCP relève la taille des segments perdus. Si ce sont les segments de grande taille, TCP
diminue la MSS (Maximum Segment Size) de lui-même (et donc par voie de conséquence, la
valeur de la MTU).
Les problèmes de performance en terme de délai sont dus à l'utilisation de tunnels. La solution
réside dans la sélection de point de sortie plus proches pour les tunnels. Au moment de la
rédaction de ce document, le problèmes de délai n'a pas de solution (au niveau application)
faisant l'objet d'une recommandation similaire à celle du RFC 6555.
Conclusion
Le mécanisme de double pile permet de résoudre les craintes liées à la migration vers IPv6.
Dès lors, il ne s'agit plus d'une migration mais d'une intégration de IPv6 dans le réseau existant.
Le réseau IPv4 reste pleinement fonctionnel et l'intégration de IPv6 ne risque pas de
compromettre le bon fonctionnement des services déployés. En effet, quand cela est possible,
la communication se fait en utilisant la nouvelle version du protocole. Dès qu'un des éléments
n'est pas compatible (réseau, système d'exploitation, application), le protocole IPv4 est utilisé.
Le principal intérêt réside dans l'adaptation progressive de son système d'information et de son
personnel à IPv6.
Notons que le déploiement double pile ne doit être que transitoire car il ne résout pas le
problème de la pénurie d'adresses puisque chaque machine doit disposer d'une adresse IPv4
et d'une adresse IPv6. Cela complique aussi les mécanismes de configuration automatique et
augmente la charge pour l'administrateur réseau. Lors de l'activation de IPv6 pour un service
existant en IPv4, il faut prendre des précautions afin que la qualité perçue par l'utilisateur ne soit
pas dégradée.
Références bibliographiques
1. ↑ 1.0 1.1 Huston, G. (2008). The ISP Column. The Changing Foundation of the Internet:
Confronting IPv4 Address Exhaustion
2. ↑ Bortzmeyer, S. IPv6 ou l'échec du marché
3. ↑ Wikipedia. Comparison of IPv6 support in operating systems
4. ↑ Linux Review. Free IPv4 to IPv6 Tunnel Brokers
5. ↑ Botzmeyer, S. (2006). Programmer pour IPv6 ou tout simplement programmer à un
niveau supérieur?
6. ↑ Matthews, P. Kuarsingh, V. (2015). Internet-Draft. Some Design Choices for IPv6
Networks
7. ↑ Cisco. (2011). White paper. Solution Overview—Getting Started with IPv6
8. ↑ RIPE documents. (2012). Requirements for IPv6 in ICT Equipment
9. ↑ Marsan, C.D. (2010). Network World. U.S. military strong-arming IT industry on IPv6
10.↑ Horley, E. (2013) IPv6 Unique Local Address or ULA - what are they and why you
shouldn't use them
11.↑ IANA. IPv6 Global Unicast Address Assignments
12.↑ Rooney, T. (2013). Deploy 360 Programme. Internet Society. IPv6 Address Planning:
Guidelines for IPv6 address allocation
13.↑ Cisco. (2011); White paper. IPv6 and Applications
14.↑ Bortzmeyer, S. (2011). Le bonheur des globes oculaires (IPv6 et IPv4)
15.↑ Huston, G. (2009). The ISP Column. A Tale of Two Protocols: IPv4, IPv6, MTUs and
Fragmentation
16.↑ Huston, G. (2012). The ISP Column. Bemused Eyeballs: Tailoring Dual Stack
Applications for a CGN Environment
Sécurité
• Bortzmeyer, S. (2013). Exposé sur la sécurité d'IPv6 à l'ESGI
• Cisco White paper (2011). IPv6 Security Brief
• RFC 4941 Privacy Extensions for Stateless Address Autoconfiguration in IPv6 Analyse
• RFC 5157 IPv6 Implications for Network Scanning Analyse
• RFC 5211 An Internet Transition Plan Analyse
• RFC 5375 IPv6 Unicast Address Assignment Considerations Analyse
• RFC 5887 Renumbering Still Needs Work Analyse
• RFC 5902 IAB thoughts on IPv6 Network Address Translation Analyse
• RFC 6018 : IPv4 and IPv6 Greynets Analyse
• RFC 6092 Recommended Simple Security Capabilities in Customer Premises Equipment
for Providing Residential IPv6 Internet Service Analyse
• RFC 6104 Rogue IPv6 Router Advertisement Problem Statement Analyse
• RFC 6106 IPv6 Router Advertisement Options for DNS Configuration
• RFC 6164 Using 127-Bit IPv6 Prefixes on Inter-Router Links Analyse
• RFC 6177 IPv6 Address Assignment to End Sites
• RFC 6180 Guidelines for Using IPv6 Transition Mechanisms during IPv6 Deployment
Analyse
• RFC 6296 IPv6-to-IPv6 Network Prefix Translation
• RFC 6555 Happy Eyeballs: Success with Dual-Stack Hosts Analyse
• RFC 6724 Default Address Selection for Internet Protocol version 6 (IPv6) Analyse
• RFC 7010 IPv6 Site Renumbering Gap Analysis Analyse
• RFC 7084 Basic Requirements for IPv6 Customer Edge Routers Analyse
• RFC 7113 Implementation Advice for IPv6 Router Advertisement Guard (RA-Guard)
Analyse
• RFC 7123 Security Implications of IPv6 on IPv4 Networks Analyse
• RFC 7381 Enterprise IPv6 Deployment Guidelines Analyse
Le notion de tunnel équivaut alors à un câble virtuel bi-directionnel permettant d’assurer une
liaison point à point entre deux nœuds IPv6 ou entre deux réseaux IPv6 et fournir ainsi une
connectivité comme l’illustre la figure 2.
Tunnel configuré
La configuration d'un tunnel consiste à créer une interface réseau représentant l'extrémité du
tunnel, indiquer les adresses IPv4 des extrémités, allouer un préfixe IPv6 pour ce lien point à
point virtuel et spécifier les routes pour suivre ce tunnel. Dans le cas d'un tunnel configuré, les
informations de la réalisation du tunnel sont indiquées par un administrateur.
Pour illustrer la configuration d'un tunnel, la figure 4 montre le cas d'un tunnel reliant un hôte
sous Linux avec un routeur. Dans cette situation, le fichier de configuration (ci-dessous) indique
la création de l'interface nommée 6in4. Le point de sortie du tunnel est indiqué. Comme les
paquets IPv6 sont encapsulés dans un paquet IPv4, celui-ci doit avoir une adresse source et
une adresse de destination. L'adresse de destination est celle du point de sortie du tunnel, ici
192.0.3.1. L'interface 6in4 est configurée par l'adresse et le préfixe 2001:db8:caf:1::2/64.
L'adresse IPv6 de l'interface 6in4 du coté du routeur ainsi que la route par défaut sont ensuite
précisées. Ces instructions sont décrites dans la documentation en ligne de Linux dans la
section 5 de interfaces.
auto 6in4
iface 6in4 inet6 v4tunnel
address 2001:db8:caf:1::2
netmask 64
endpoint 192.0.3.1
gateway 2001:db8:caf:1::1
Tunnel automatique
Un tunnel configuré demande un travail de configuration, ce qui peut être vu comme un
inconvénient. Des solutions d'automatisation ont été étudiées, qui ont comme principe de
contenir l'adresse IPv4 du tunnelier de destination dans l'adresse IPv6. La technique de
transition 6to4 décrite par le RFC 3056 suit ce principe. Elle vise à interconnecter entre eux des
sites IPv6 isolés en créant des tunnels automatiques IPv6 dans IPv4 en fonction du destinataire
des données. La figure 5 montre 2 réseaux IPv6 communiquant entre eux via un tunnel
automatique 6to4. Le point fort du mécanisme présenté ici est l'automatisation, où l'intervention
de l'administrateur est réduite à une phase de configuration/ initialisation du service et non à
une phase de configuration des tunnels.
Figure 5: 6to4.
Comme 6in4, l'encapsulation des paquets IPv6 s'effectue directement dans les paquets IPv4.
6to4 profite d'un préfixe IPv6 réservé 2002::/16. Le préfixe de l'adresse IPv6 d'un tunnelier est
composé automatiquement en concaténant le préfixe réservé et l'adresse IPV4 unicast globale
de ce tunnelier comme montré par la figure 6. Ainsi, un préfixe IPv6 de longueur 48 bits peut
être aisément construit en utilisant l'adresse IPv4 du noeud en bordure des réseaux IPv4 et
IPv6. Ce préfixe peut identifier un site IPv6. De cette manière, 6to4 se suffit à lui-même pour
créer un préfixe IPv6 pour un site en toute autonomie. On peut remarquer que ce plan
d'adressage est conforme au plan d'adressage global actuellement en vigueur, puisqu'il réserve
16 bits pour numéroter les réseaux du site (noté SID) et 64 bits pour les identifiants d'interface
(noté IID).
revient d'effectuer cette opération. Ainsi, le paquet doit suivre la route IPv6 2002::/16 pour
atteindre ce routeur 6to4. Ce dernier analyse l'adresse IPv6 de destination et trouve l'adresse
IPv4 de l'autre extrémité du tunnel (192.0.3.1 dans l'exemple). Il pourra alors effectuer la
transmission en encapsulant le paquet IPv6 dans un paquet IPv4. C'est cette encapsulation qui
forme le tunnel. Le routeur 6to4 du coté de B décapsule le paquet IPV6 et le route normalement
vers sa destination finale B en utilisant le routage interne.
TSP s'appuie sur l'échange de simples messages XML dont un exemple est donné ci-dessous.
Cet exemple correspond à la demande de création d'un tunnel simple par un client TSP:
-- Successful TCP Connection -
C:VERSION=2.0.0 CR LF
S:CAPABILITY TUNNEL=V6V4 AUTH=ANONYMOUS CR LF
C:AUTHENTICATE ANONYMOUS CR LF
S:200 Authentication successful CR LF
C:Content-length: 123 CR LF
tunnel action="create" type="v6v4"
client
address type="ipv4"1.1.1.1/address
/client
/tunnel CR LF
S: Content-length: 234 CR LF
200 OK CR LF
tunnel action="info" type="v6v4" lifetime="1440"
server
address type="ipv4"206.123.31.114/address
address type= "ipv6"3ffe:b00:c18:ffff:0000:0000:0000:0000/address
/server
client
address type="ipv4"1.1.1.1/address
address type= "ipv6"3ffe:b00:c18:ffff::0000:0000:0000:0001/address
address type="dn"userid.domain/address
/client
/tunnel CR LF
C: Content-length: 35 CR LF
tunnel action="accept"/tunnel CR LF
La connectivité offerte par les Tunnel Brokers est en général fournie à titre provisoire (soit en
attendant que l'offre des FAI soit disponible, soit pour faire des tests de validation, par exemple).
Elle peut aussi être une première étape pour un prestataire de service pour procurer de la
connectivité IPv6 à ses usagers. Afin de promouvoir le passage à IPv6, les Tunnel Brokers sont
souvent gratuits [2]. Lorsque le Tunnel Broker a une faible répartition géographique de ses
serveurs de tunnel. Pour certains utilisateurs, la longueur des tunnels reste un problème.
Conclusion
Dans la démarche d'intégration d'IPv6, la meilleure solution est d'utiliser IPv6 nativement, à
savoir comme IPv4. La complexité supplémentaire induite par les tunnels, ainsi que la réduction
de la MTU qu'ils imposent (entraînant des problèmes de connectivité "épisodique") sont
épargnés. Mais il n'est pas toujours possible de maintenir la connectivité IPv6 ou de trouver un
opérateur offrant la connectivité IPv6. Alors, dans ces situations, il faut se résoudre à utiliser
des tunnels. Le RFC 7059 effectue un inventaire des techniques d'intégration reposant sur des
tunnels. Toutes les techniques ne se valent pas du point de vue des performances et de la
fiabilité. Les meilleures techniques sont celles qui établissent des tunnels locaux ou de courte
distance et pour lesquelles les extrémités du tunnel sont gérées et offrent un service
contractuel. Le choix d'une technique de tunnel doit se faire en fonction des besoins de
Références bibliographiques
1. ↑ Huston, G.(2010). The ISP Column. Flailing IPv6
2. ↑ Linux Review. Free IPv4 to IPv6 Tunnel Brokers
3. ↑ Cisco. (2011). White paper. IPv6 Rapid Deployment: Provide IPv6 Access to Customers
over an IPv4-Only Network
4. ↑ Huston, G. (2011). The ISP Column. Testing Teredo
Autres présentations
• Présentation de 6RD
Aujourd'hui, le cas le plus fréquent est le premier, les serveurs gardant majoritairement une
connectivité IPv4. Il s'agit donc de mettre en place un dispositif pour offrir une connectivité IPv4
aux clients IPv6. Ainsi, ils pourront accéder à des serveurs qui n'ont toujours pas IPv6. Un
moyen pour offrir cette connectivité est de traduire automatiquement les paquets IPv6 du client
en IPv4 pour les envoyer au serveur, et de faire la traduction inverse au retour. Un tel dispositif
devra naturellement se situer en coupure des communications entre le client et le serveur, afin
d'en intercepter les paquets pour les traduire, et les ré-émettre sur le réseau du destinataire. Ce
dispositif est comparable au traditionnel NAT (Network Address Translator) utilisé entre les
réseaux IPv4 privés et publics. Mais dans notre cas, ce dispositif n'effectue pas une simple
translation d'un espace d'adressage à un autre, mais une véritable traduction de l'en-tête IP.
Le traducteur assurant le relais entre un réseau IPv6 (coté client) et un réseau IPv4 (coté
serveur) est appelé NAT64. La figure 1 représente la topologie d'utilisation du NAT64. Les
spécifications pour cette traduction ont été publiées par le groupe de travail Behave [1] de
l'IETF qui avait déjà publié des travaux pour le NAT44.
Mais, dans certains cas, elle est la seule réaliste, puisqu'on ne peut pas stocker toutes les
informations dans une seule adresse, surtout si elle est IPv4. Si le composant de la
transposition des champs de l'en-tête s'effectue sans état, le composant de traduction des
adresses fonctionne avec ou sans état.
Version Version 6
IHL Ignorer
Flow label 0
Checksum Ignorer
Destination
Destination Address Voir le paragraphe Traduction des adresses
Address
Version Version 4
IHL 5
Ident./Flag/Offset 0
ensemble d'adresses IPv4 comme le montre la figure 2. L'ensemble d'adresses IPv6 du NAT64
(notée N6) vont servir à représenter les adresses IPv4 (notée H4) dans le réseau IPv6. Et de
manière similaire pour l'ensemble des adresses IPv4 du NAT64 (notée N4), elles vont
représenter les adresses IPv6 (notée H6) dans le réseau IPv4.
où pref64 représente un préfixe IPv6 pour constituer une adresse IPv6 embarquant une
adresse IPv4 (notée ici H4). L'adresse IPv6 ainsi constituée est notée pref64:H4. Le préfixe
IPv6 utilisé sera un préfixe routé vers le traducteur, afin que celui-ci assure son rôle de relais.
L'adresse IPv6 ainsi créée permet d'identifier un noeud IPv4 dans l'espace d'adressage IPv6.
Lorsque l'adresse IPv6 n'embarque pas l'adresse IPv4 et que l'adresse IPv4 ne peut contenir
une adresse IPv6, alors mettre en correspondance une adresse IPv6 avec une adresse IPv4
demande un traduction d'adresse avec état. La mise en correspondance est faite
dynamiquement par le traducteur. Celui-ci utilise une de ses adresses IPv4. Comme il n'y aura
pas assez d'adresses IPv4 pour les noeuds IPv6, le traducteur utilise le numéro de port pour
reconnaitre les noeuds IPv6. La combinaison d'une adresse IP et d'un port est appelée adresse
de transport. Le traducteur doit alors retenir cette association d'adresses de transport entre IPv4
et IPv6 dans un état. Par exemple, dans le cas d'un traducteur entre un client IPv6 du réseau
local et un serveur de l'Internet v4, le traducteur ne sait pas comment traduire l'adresse source
du paquet IPv6: il doit utiliser une de ses propres adresses IPv4 pour définir une adresse de
transport en IPv4. Le paquet retour contient alors cette adresse de transport comme
destination. Le traducteur a bien besoin ici d'un état: la correspondance choisie pour le paquet
aller entre l'adresse de transport source IPv6 et l'adresse de transport source IPv4. La
traduction est alors dite à état car elle fait intervenir cette information. La traduction peut se
représenter de la manière suivante, avec H6 qui représente l'adresse IPv6 et H4 l'adresse IPv4:
IPv6 -------------- IPv4
H6 (état H6-H4) H4
La traduction avec état est similaire à celle que l'on trouve avec le NAT44. L'adresse de
transport constituée par une adresse IPv6 et le numéro de port est convertie en une autre
adresse de transport dans le réseau IPv4. Le point essentiel dans ce mode de traduction est
que plusieurs noeuds IPv6 partagent une adresse IPv4. Il y a une correspondance de N:1 entre
l'adresse IPv6 et IPv4.
Mécanismes complémentaires
Traduction des paquets ICMP
Comme décrit dans l'activité 31, les messages ICMP servent au contrôle de la connectivité de
bout en bout, ainsi qu'aux rapports d'erreurs d'acheminement des paquets. La présence d'un
traducteur sur ce chemin ne doit pas perturber ce mécanisme, sous peine de grandement
complexifier son fonctionnement. Celui-ci doit donc s'efforcer de traduire les messages ICMPv4
en messages ICMPv6, et inversement, pour être ainsi transparent dans ces échanges.
Le traducteur recevant un message ICMPv4 (resp. ICMPv6) doit donc interpréter le contenu de
ce message pour créer un message ICMPv6 (resp. ICMPv4) à retransmettre. L'en-tête IP est
traduit selon les mécanismes présentés plus haut. L'en-tête ICMPv4 (resp. ICMPv6) doit donc
être transformé par le traducteur en en-tête ICMPv6 (resp. ICMPv4). Cette traduction est
facilitée par le fait que les sémantiques des messages de ces 2 protocoles ne sont pas très
éloignées: les fonctions supplémentaires de découverte de voisins intégrées dans ICMPv6 ne
sont valides que sur le lien et ne seront pas traduites. De plus, les paquets ICMP n'ont pas
besoin d'informations contextuelles pour être interprétés. La traduction des messages ICMP est
dite sans état. Le RFC 6145 définit le mécanisme pour effectuer cette traduction.
Le champ ICMP type devra être ajusté dans certains cas lors de la traduction car les valeurs
pour la même sémantique de messages peuvent être différentes entre les versions du
protocole. Par exemple, les messages Echo Request et Reply sont identifiés par la valeur du
champ ICMP type 8 et 0 en ICMPv4, 128 et 129 en ICMPv6. Certains messages ICMPv4 ne
seront pas traduits car leur sémantique (obsolète) n'a pas été transposée dans ICMPv6.
La traduction de l'en-tête ICMP modifie les en-têtes des niveaux réseau et transport. Elle
impacte donc la somme de contrôle calculée pour ces en-têtes. Le champ checksum doit donc
être recalculé suite à la traduction.
1. lorsqu'un client IPv6 formule une requête de type AAAA pour résoudre le nom d'un
serveur, le DNS64 la transfère au serveur DNS en charge du nom de domaine du
serveur,
2. si la réponse est vide, le DNS64 renvoie une requête de type A pour le même nom de
serveur au serveur DNS,
3. le DNS64 reçoit une réponse à sa requête de type A,
4. le DNS64 applique alors la traduction de l'adresse IPv4 obtenue en adresse IPv6,
comme spécifié dans le RFC 6052. Il combine le préfixe IPv6 aux 32 bits de chacune des
adresses obtenues comme résultats. L'adresse IPv6 obtenue sera transmise au client en
réponse à sa requête AAAA.
Conclusion
Le déploiement de réseaux seulement en IPv6 apporte la réponse au manque d'adresses IPv4
mais pose le problème de l'accès aux services restés en IPv4. La traduction de paquets comme
opérée par NAT64 offre une alternative pour les applications qui sont indépendantes du format
d'adresse IP au niveau de leur protocole applicatif (si celui-ci ne transporte pas des adresses
IP). Dans cette condition, le dispositif de traduction NAT64 s'utilise de façon quasi transparente.
Aucune modification du client ou du serveur n'est requise, tout est fait dans le traducteur.
Cependant, ce dispositif souffre de certains inconvénients du NAT44 comme une faible capacité
à passer à l'échelle pour les traducteurs à état ou du partage des adresses IPv4 [RFC 6269]. Il
faut de plus noter, dans le cas d'un client IPv6, que les applications et les protocoles utilisés, par
ce client, devront être compatibles avec IPv6. Lorsque cette compatibilité n'existe pas, le client
ne pourra pas alors profiter de l'interopérabilité rendue possible par le NAT64. Il demandera
d'autres solutions de transition reposant sur une adresse IPv4, tel que la double traduction
464xlat [RFC 6877].
Il peut paraitre contradictoire d'utiliser IPv6 pour se passer de la traduction ou de la double
traduction d'IPv4, pour en fait retrouver des traducteurs dans les communications. Tout d'abord,
il faut noter que cette solution se veut transitoire. Dans l'article [6] , les auteurs argumentent que
NAT64 doit se voir comme une évolution du NAT44 servant à éviter l'utilisation d'un étage de
traduction (NAT444). De plus, le nombre de services accessibles uniquement par IPv4 va
diminuer au fur et à mesure qu'IPv6 va se diffuser dans l'Internet. Cette évolution dans le temps
va entraîner une diminution du trafic IPv4 au profit du trafic IPv6. Au contraire de se qui se
passe aujourd'hui dans l'Internet avec IPv4, les dispositifs de traduction vont être de moins en
moins sollicités.
Malgré que NAT 64 ne soit pas une solution universelle [RFC 7269], il se développe de plus en
plus car il devient intéressant aujourd'hui de pouvoir déployer des réseaux seulement IPv6 à la
place de réseaux IPv4 privés notamment quand l'espace d'adressage privé n'est plus suffisant
pour adresser l'ensemble des noeuds. Certains opérateurs mobiles ont notamment fait ce choix
pour leur réseau (comme T-Mobile aux USA). De plus, ce mécanisme constitue le composant
essentiel pour la migration vers IPv6 dans la situation actuelle de l'Internet (épuisement des
adresses IPv4 disponibles et forte inertie pour la migration des noeuds IPv4). Les solutions de
traduction comme NAT64 trouvent donc leur intérêt pour que des noeuds IPv6 accèdent aux
contenus disponibles sur IPv4.
Références bibliographiques
1. ↑ Bortzmeyer, S. (2008). Le groupe de travail BEHAVE de l'IETF
2. ↑ Bagnulo, M.; Garcia-Martinez, A. and Van Beijnum, I. (2012). IEEE Communications
Magazine, Vol. 50, No. 7, July. The NAT64/DNS64 tool suite for IPv6 transition
3. ↑ Cisco. (2011). White paper. NAT64—Stateless versus Stateful
4. ↑ Pepelnjak, I. (2011). Blog IP space. Stateless NAT64 is useless
5. ↑ Cisco. (2012). White paper. NAT64 Technology: Connecting IPv6 and IPv4 Networks
6. ↑ Boucadair, M.; Binet, D. et Jacquenet, C. (2011). Techniques de l'ingénieur. Transition
IPv6 - Outils et stratégies de migration
que le serveur.
Dans le contexte initial, le service Web n'est accessible qu'en IPv4. L'adresse IPv4 du service
(notée S4) est enregistrée dans le DNS, celle-ci est récupérée par les clients à partir du nom du
service afin d'initier une connexion vers le serveur comme montrée dans la figure 4.
Conclusion
Les passerelles applicatives offrent un moyen simple d'interopération entre des clients et des
serveurs qui n'utilisent pas la même version du protocole IP. Parce qu'elles interprètent le
contenu du paquet dans la couche d'application, elles sont transparentes pour l'infrastructure de
communications (routeurs). Elles ne demandent pas des modifications au niveau du réseau.
Cependant, les passerelles applicatives posent des contraintes qui limitent leur usage [1] , telles
que:
• introduction d'un délai pour le traitement des paquets,
• difficultés à passer le facteur d'échelle, et possibilité de congestion,
• applications non conçues pour fonctionner avec un relais intermédiaire.
En effet, des protocoles propriétaires, ainsi que certains protocoles assurant la confidentialité
des communications peuvent rendre impossible la mise en oeuvre d'un tel dispositif (pour un
protocole de sécurité, une telle passerelle pourrait s'apparenter à un homme-au-milieu). De
plus, selon le protocole utilisé, la mise en oeuvre d'une telle passerelle peut s'avérer complexe:
par exemple, SIP nécessite une interprétation de l'ensemble de la signalisation. Enfin, une
passerelle applicative n'est pas forcément le meilleur choix si le protocole applicatif embarque
des adresses IP.
Références bibliographiques
1. ↑ IPv6.com. (2008). Tech spotlight. ALG - Application Level Gateway
Remerciements
Les auteurs souhaitent remercier Stéphane Bortzmeyer pour ses analyses de RFC sur IPv6
(http://www.bortzmeyer.org/) dont des extraits ont été utilisés pour ce cours.