<?xml version="1.0" encoding="utf-8"?>
<rfcdesc num="4925" title="Softwire Problem Statement"
	 status="informational" wg="softwire">
<authors><author>X. Li (Cernet)</author><author>S. Dawkins (Huawei)</author><author>D. Ward (Cisco)</author><author>A. Durand (Comcast)</author></authors>
<rfcdate><month>July</month><year>2007</year></rfcdate>
<date>2008-06-11</date>
<content>
<p>Les réseaux informatiques typiques d'il y a vingt ans étaient
multi-protocoles et ces protocoles coexistaient plus ou moins
harmonieusement. Pour connecter deux réseaux via un troisième, parlant
un protocole différent, on utilisait souvent des <wikipedia
name="Tunnel (réseau informatique)">tunnels</wikipedia>. C'est ainsi que, par
exemple, <wikipedia name="Internet Protocol">IP</wikipedia> a servi à
connecter beaucoup de réseaux <wikipedia>AppleTalk</wikipedia>. Puis
IP a tout remplacé et les réseaux sont devenus
mono-protocole. Maintenant, avec l'épuisement des adresses
<wikipedia>IPv4</wikipedia> qui se rapproche, avec le déploiement
d'îlots <wikipedia>IPv6</wikipedia> qu'il faut relier entre eux, les
tunnels reviennent, et avec eux beaucoup de complexité.
Un groupe de travail de l'<wikipedia name="Internet Engineering Task Force">IETF</wikipedia>, <foreign><link
url="http://tools.ietf.org/wg/softwire">softwire</link></foreign>
(« câbles virtuels ») travaille donc à une meilleure spécification de
ces tunnels. Ce RFC est la première étape publiée de leur travail.</p>
<p>Les idées derrière le système des « câbles virtuels »
(<foreign>soft wires</foreign>) sont très anciennes. Par exemple, le
système de « courtier en tunnels » (<foreign>tunnel broker</foreign>)
du <rfc num="3053"/>, en janvier 2001, était déjà un câble virtuel,
même si le mot n'existait pas encore. Mais pourquoi avoir remplacé les
<wikipedia name="Tunnel (réseau informatique)">tunnels</wikipedia> par des « câbles virtuels » ? La
raison principale est cosmétique : les tunnels souffrent d'une mauvais
réputation, lents, compliqués, peu fiables, posant des problèmes de
<wikipedia name="Maximum Transmission Unit">MTU</wikipedia>. Comme les balayeurs sont devenus
<wikipedia name="Technicien de surface">techniciens de surface</wikipedia>, comme le surveillant
général est devenu <wikipedia name="Conseiller principal d'éducation">conseiller d'éducation</wikipedia>, les
tunnels sont devenus des <foreign>soft wires</foreign> (la section 1.1
détaille le vocabulaire et définit le câble virtuel comme un tunnel,
créé sous le contrôle d'un protocole, ce qui exclut donc les tunnels manuels).</p>
<p>Ce premier RFC ne fait que définir le problème. D'autres documents,
en cours d'élaboration à l'<wikipedia name="Internet Engineering Task Force">IETF</wikipedia>, s'occuperont
des protocoles effectifs. La section 1 introduit le problème,
spécifier des câbles virtuels qui pourront être établis rapidement,
mais durer longtemps, afin de connecter des réseaux IP entre eux
(typiquement, des réseaux IPv6 via un réseau IPv4). Cette section
introduit également la grande distinction entre les <wikipedia
name="Topologie">topologies</wikipedia> « Centraliser et
redistribuer  » (<foreign>Hubs and
Spokes</foreign>) et « Maillage » (<foreign>Mesh</foreign>). Dans le
premier cas, le réseau est organisé autour de points proéminents (les
<foreign>hubs</foreign>) qui concentrent le trafic et le
redistribuent. Dans le second, tout le monde est au même niveau.</p>
<p>La section 2 est consacrée au « Centraliser et
redistribuer  ». Les tunnels du <rfc num="4213" local="true"/> sont un exemple
typique de cette approche. Voici, extrait de cette section, un cas où
une machine double pile (v4 et v6) se trouve sur un réseau local où le
<wikipedia name="Customer Premises Equipment">CPE</wikipedia> est purement v4 (la section 2.2 décrit plus
finement ce cas), et qui est connecté à un
<wikipedia name="Fournisseur d'accès à Internet">FAI</wikipedia> purement v4. Elle va donc établir un câble
virtuel avec un concentrateur de câbles virtuel (le
« <foreign>hub</foreign> ») qui va ensuite la connecter aux réseaux
v6. Seul IPv6 circulera sur ce câble virtuel.
<image name="softwire-fig3"/><!-- Figure 3 du RFC -->
Comme précisé dans la section 2.4, le protocole du câble virtuel doit
permettre la délégation d'un préfixe IPv6 fixe, même si l'adresse IPv4
du CPE change. On peut utiliser pour cela le <rfc num="3633" local="true"/>. Cette
exigence fait que <wikipedia>6to4</wikipedia> ne permet pas de créer
de véritables câbles virtuels, puisque l'adresse IPv6 change en même
temps que la v4<!-- Section 2.4 -->.</p>
<p>Dans le mode « Centraliser et
redistribuer », c'est toujours la machine double pile qui crée le câble virtuel, en se connectant
au concentrateur. Elle est nommée l'initiateur (section 2.5). Le
concentrateur est typiquement un <wikipedia>routeur</wikipedia> double
pile (section 2.6). Le RFC impose que le protocole permette « des
millions » d'initiateurs. Le protocole de découverte du concentrateur n'est
pas spécifié. Enfin, la section 2.11 détaille les exigences de
sécurité, comme la possibilité d'authentifier les initiateurs.</p>
<p>La section 3, elle, parle de l'architecture maillée. Dans cette
architecture, un réseau uniquement IPv4 connecte des clients IPv6
entre eux en fournissant des AFBR (<foreign>Address Family Border
Routers</foreign>) qui parlent les deux protocoles et peuvent créer
des câbles virtuels entre eux. Cela ressemble donc beaucoup aux
<wikipedia name="Réseau privé virtuel">VPN</wikipedia>, par exemple dans le <rfc num="4364"/>,
mais sans l'exigence de gérer plusieurs espaces d'adressage distincts.</p>
<p>Les câbles virtuels, en pratique, vont nécessiter d'encapsuler les
paquets d'un protocole (en général IPv6) dans un autre (en général
IPv4). Les sections 2.13 et 3.5 discutent de l'encapsulation en notant
que toutes les techniques existantes doivent pouvoir être
utilisées. Cela implique <wikipedia name="Generic Routing Encapsulation">GRE</wikipedia> (<rfc
num="2784"/>), <wikipedia name="Multiprotocol Label Switching">MPLS</wikipedia> (<rfc num="3031"
local="true"/>) ou <wikipedia name="Layer 2 Tunneling Protocol">L2TP</wikipedia> (<rfc num="3931" local="true"/>).</p>
</content>
</rfcdesc>
