<?xml version="1.0" encoding="utf-8"?>
<rfcdesc title="Deployment Considerations for Dual-Stack Lite" num="6908" status="informational" wg="softwire">
<authors><author>Y. Lee (Comcast)</author><author>R. Maglione (Telecom Italia)</author><author>C. Williams (MCSR Labs)</author><author>C. Jacquenet (France Telecom)</author><author>M. Boucadair (France Telecom)</author></authors>
<rfcdate><month>March</month><year>2013</year></rfcdate>
<date>2013-03-26</date>
<content>
<p><wikipedia name="Transition d'IPv4 vers IPv6" anchor="Dual-Stack_Lite">DS-Lite</wikipedia> est une des nombreuses techniques de
transition / co-existence <wikipedia>IPv4</wikipedia> /
<wikipedia>IPv6</wikipedia>. Elle est normalisée dans le <rfc
num="6333" local="true"/>. Ce nouveau <wikipedia name="Request for comments">RFC</wikipedia>
se penche plutôt sur des problèmes opérationnels : comment déployer
DS-Lite, quels pièges éviter, etc.</p>
<p><wikipedia name="Transition d'IPv4 vers IPv6" anchor="Dual-Stack_Lite">DS-Lite</wikipedia> (<foreign>Dual-Stack Lite</foreign>)
est conçu pour un <wikipedia name="Fournisseur d'accès à Internet">FAI</wikipedia> récent, qui vient
d'arriver et n'a donc pas pu obtenir d'adresses <wikipedia>IPv4</wikipedia>, <link
local="epuisement-adresses-ipv4">toutes épuisées</link>. Ce FAI a donc dû
numéroter son réseau en <wikipedia>IPv6</wikipedia>, et comme ses
clients ont encore de l'IPv4 à la maison, et comme ils souhaitent
accéder à des machines Internet qui sont encore uniquement en IPv4, le
FAI en question va donc devoir 1) <wikipedia name="Network address translation">NATer</wikipedia> les
adresses de ses clients (<rfc num="3022"/>) vers le monde extérieur 2)
<wikipedia name="Tunnel (réseau informatique)">tunneler</wikipedia> leurs paquets depuis leur réseau local
IPv4 (<rfc num="2463"/>) jusqu'au <wikipedia name="Carrier Grade NAT">CGN</wikipedia>, en passant par le réseau
purement IPv6 du FAI. C'est là que DS-Lite intervient (<rfc num="6333"
local="true"/>).</p>
<p>Apparemment, il n'y a eu qu'un seul déploiement effectif de DS-Lite
chez un vrai FAI (le RFC ne dit pas lequel) et ce <rfc num="6908"/> est largement tiré de
cette expérience réelle. Il est donc une lecture intéressante pour les
opérateurs qui aiment le concret.</p>
<p>Ce RFC est en deux parties : les questions liées à l'AFTR et celles
liées au B4. Vous ne savez pas ce qu'est un AFTR ou un B4 ? Vous
n'avez pas envie de lire le <rfc num="6333" local="true"/> qui
explique cela ? Alors, en deux mots, l'AFTR (<foreign>Address Family Transition
Router</foreign>) est le gros routeur NAT (le <wikipedia name="Carrier Grade NAT">CGN</wikipedia>) situé
entre le FAI et l'Internet. Et le B4 (<foreign>Basic Bridging
Broadband element</foreign>) est chez le client, typiquement dans sa
<wikipedia name="Box (Internet)">box</wikipedia> et représente le point d'entrée du
<wikipedia name="Tunnel (réseau informatique)">tunnel</wikipedia>, du « lien virtuel » (<foreign>soft
wire</foreign>). Prononcez les sigles à voix haute : le B4 est avant
le tunnel (<foreign>before</foreign>) et l'AFTR après
(<foreign>after</foreign>).</p>
<p>Donc, bien qu'il soit « après », notre RFC commence par l'AFTR
(section 2). D'abord, comme DS-Lite utilise un tunnel, il va y avoir
des problèmes dus à la <wikipedia name="Maximum Transmission Unit">MTU</wikipedia> inférieure. Le RFC
recommande donc d'essayer de faire un lien entre le B4 et l'AFTR ayant
une MTU d'au moins 1540 octets pour que, après avoir retiré les 40 octets de
l'encapsulation dans le tunnel, on ait les 1500 octets
d'<wikipedia>Ethernet</wikipedia>. Si ce n'est pas possible, alors le
B4 et l'AFTR vont devoir gérer la
<wikipedia xml:lang="en" name="IP fragmentation">fragmentation</wikipedia>. Comme le réassemblage des
paquets est une opération coûteuse en ressources (il faut garder les
fragments en mémoire tant que tout n'est pas arrivé), la tâche va être
particulièrement lourde pour l'AFTR (des milliers de tunnels peuvent
se terminer sur un seul AFTR). Il faut les dimensionner largement !
(C'est un problème général des CGN.)</p>
<p>Ensuite, il faut penser à la
<wikipedia name="Historique (informatique)">journalisation</wikipedia>. Le principe de DS-Lite est que
tous les clients du FAI partageront la poignée d'adresses IPv4
publiques que NATeront les AFTR. Si un client fait quelque chose de
mal (par exemple accéder à un site Web qui déplait au gouvernement),
il faut pouvoir l'identifier. Un observateur situé à l'extérieur a vu
une adresses IPv4 du FAI et des milliers de clients pouvaient être
derrière. L'AFTR doit donc noter au moins l'adresse <wikipedia>IPv6</wikipedia>
du B4 (elle est spécifique à chaque client) et le
<wikipedia name="Port (logiciel)">port</wikipedia> source utilisé après le NAT (en espérant
que l'observateur extérieur ne notera pas que l'adresse IPv4 source
mais aussi le port, cf. <rfc num="6302" local="true"/>).</p>
<p>Les adresses IP partagées sont une plaie du NAT, ce n'est pas
nouveau (<rfc num="6269" local="true"/>). Par exemple, si une adresse
IPv4 est <link url="http://lci.tf1.fr/high-tech/2007-07/polemique-quand-wikipedia-punit-sciences-4890331.html">mise sur une liste noire suite à son comportement</link>,
ce seront des centaines ou des milliers de
B4 qui seront privés de connectivité IPv4. Si le destinataire ne tient
pas compte du <rfc num="6302" local="true"/> et bloque sur la seule
base de l'adresse IPv4, le support téléphonique du FAI qui a déployé DS-Lite va
exploser. (Un travail est en cours à l'IETF pour aider à
l'identification de l'utilisateur derrière un CGN. Mais il n'est pas
terminé et, de toute façon ne sera pas forcément
déployé. L'obstination de tant d'acteurs à rester en IPv4 va se payer
cher.)</p>
<p>Un problème analogue se posera si le FAI veut faire de la
comptabilité des octets échangés, et s'il ne met pas cette fonction
dans le <wikipedia name="Customer Premises Equipment">CPE</wikipedia>. Le tunnel et le NAT rendront cette
analyse plus compliquée (section 2.6). À noter que le <rfc
num="6519"/> normalise des extensions à <wikipedia name="Remote Authentication Dial-In User Service">Radius</wikipedia>
pour les problèmes particuliers de DS-Lite.</p>
<p>Mais tout ceci n'est rien par rapport aux problèmes de fiabilité
que posent les AFTR. L'Internet normal est très robuste car les
équipements intermédiaires (les <wikipedia name="Routeur">routeurs</wikipedia>) n'ont
pas d'état : s'ils redémarrent, rien n'est perdu. S'ils s'arrêtent de
fonctionner, on en utilise d'autres. Le NAT met fin à tout cela : le
routeur NAT a un état en mémoire, la table des correspondances {adresse
interne, adresse externe} et, s'il redémarre, tout est fichu. C'est
bien pire pour un CGN : s'il redémarre, ce sont des centaines ou des
milliers d'utilisateurs qui perdent leurs connexions en cours. La
fiabilité des AFTR est donc cruciale (cf. annexe A.3 du <rfc
num="6333" local="true"/>). Notre RFC propose que des AFTR de
remplacement soient installés pour être prêts à prendre le relais. Ils
peuvent fonctionner en « remplacement à chaud » (<foreign>Hot
Standby</foreign>), se synchronisant en permanence avec l'AFTR
primaire, prêts à le remplacer « sans couture » puisqu'ils ont le même
état, ou bien en « remplacement à froid » (<foreign>Cold
Standby</foreign>), sans synchronisation. Dans ce second cas, l'AFTR
de secours fait qu'un AFTR en panne est vite remplacé, mais il n'y a
pas de miracle : les clients doivent recommencer toutes leurs
sessions. Vue la complexité qu'il y a à mettre en œuvre correctement
la synchronisation des états, notre RFC recommande le remplacement à
froid, et tant pis si c'est moins agréable pour les utilisateurs.</p>
<p>Et les performances ? Combien faut-il d'AFTR pour servir les
utilisateurs ? La section 2.8 discute de ce point et du meilleur
placement de ces équipements.</p>
<p>Comme avec tout CGN, DS-Lite, en centralisant les adresses IPv4,
limite les possibilités de <wikipedia name="Géolocalisation">géo-localisation</wikipedia>. Le
B4 (donc la maison de l'utilisateur) et l'AFTR peuvent parfaitement
être dans des villes différentes (<rfc num="6269" local="true"/>,
section 7). Les applications ne devraient donc pas se fier à la
géo-localisation mais demander à l'utilisateur où il se trouve, par
exemple avec le protocole HELD du <rfc num="5985"/> ou en suivant
l'architecture du <rfc num="6280" local="true"/>. Le RFC conseille,
curieusement, de mettre les AFTR le plus près possible des
utilisateurs, pour limiter ce problème (alors que les AFTR ont besoin
d'une connectivité IPv4, et que le réseau du FAI ne la fournit pas
forcément, sinon il n'aurait pas besoin de DS-Lite).</p>
 <p>Autre problème douloureux avec les CGN (dont DS-Lite), les
 connexions entrantes. Contrairement au NAT traditionnel, celui fait
 par la <foreign><wikipedia name="Box (Internet)">box</wikipedia></foreign> à la maison,
 plus question de configurer sa <foreign>box</foreign> via une
 interface Web pour rediriger certains ports. Et plus moyen de se
 servir d'<wikipedia name="Universal Plug and Play">UPnP</wikipedia>. Les éventuelles redirections
 doivent être sur l'AFTR, un engin largement partagé. Donc, pas
 question de demander une redirection du <wikipedia name="Port (logiciel)">port</wikipedia>
 80...</p>
<p>Pour « programmer » l'AFTR, lui demander d'ouvrir certains ports en
entrée, notre RFC recommande d'installer un serveur
PCP (<foreign>Port Control Protocol</foreign>, <rfc num="6887" local="true"/>) sur
les AFTR. Il n'est pas évident que cela soit une solution
satisfaisante. D'une part, il existe encore très peu de clients PCP
(par rapport aux clients UPnP). D'autre part, l'AFTR étant partagé
entre plusieurs clients ne se connaissant pas, rien ne dit que la
coexistence se passera bien et que les opérateurs accepteront d'ouvrir
PCP à leurs clients.</p>
<p>Voilà, c'étaient les points essentiels pour les AFTR, lisez la
section 2 du RFC si vous voulez la liste complète. Et les B4 ? Ils
font l'objet de la section 3. D'abord, le problème du
<wikipedia name="Domain Name System">DNS</wikipedia>. Le B4 est censé s'annoncer comme résolveur
DNS et relayer les requêtes DNS
au dessus d'IPv6 vers l'extérieur. Ce faisant, il est important qu'il
suive les recommendations pour les relais DNS du <rfc num="5625"
local="true"/> (en pratique, la grande majorité des
<foreign>boxes</foreign> et des petits routeurs bas de gamme violent
affreusement ces recommendations). C'est notamment nécessaire si on
veut que <wikipedia name="Domain Name System Security Extensions">DNSSEC</wikipedia> fonctionne.</p>
<p>Si un client sur un réseau local IPv4 fait des requêtes DNS en IPv4
vers une adresse qui n'est pas celle du B4, ces requêtes seront
tunnelisées et NATées comme n'importe quel trafic IPv4. Compte-tenu du
fait que, du point de vue du NAT, chaque requête DNS est une session à
elle seule, l'augmentation de la charge sur les AFTR sera sensible. Ce
n'est donc pas conseillé.</p>
<p>Le B4 étant le début du réseau de l'opérateur, et beaucoup de
choses dépendant de sa configuration et de son bon fonctionnement, il
est important que l'opérateur puisse y accéder à distance, et au
dessus d'IPv6, pas au dessus du lien virtuel (qui a davantage de
chances d'avoir des problèmes).</p>
<p>À propos d'administration et de supervision du réseau, il est
important que les AFTR répondent aux paquets utilisés pour
<wikipedia name="ping (logiciel)">ping</wikipedia> et <wikipedia>traceroute</wikipedia>, afin
que le B4 puisse tester que la connectivité IPv4 au dessus du tunnel
marche bien. Des adresses IPv4 spéciales ont été réservées pour cela
(rappelez-vous que, si vous déployez DS-Lite, c'est que vous n'avez
pas assez d'adresses IPv4 publiques),
<computer>192.0.0.0/29</computer>. Les AFTR sont censés tous répondre
aux paquets envoyés à <computer>192.0.0.2</computer>.</p>
</content>
</rfcdesc>
