Retrouvez cet article dans : Linux Magazine 104
Il n’y a pas lieu d’être jaloux des internautes de free.fr qui fournit gracieusement IPv6 sur l’ADSL. En effet, Freenet6 d’Hexago offre un service similaire, ainsi qu’une mise en action extrêmement simple.
Hexago [1] est une compagnie canadienne produisant des routeurs IPv6 depuis 2002. Hexago parraine aussi le portail go6.net, traitant de l’actualité IPv6 et offre Freenet6 [2], un service gratuit de tunnels permettant l’accès au réseau IPv6.
L’intérêt de Freenet6 par rapport à d’autres fournisseurs d’accès indirect à l’IPv6 via des tunnels (tunnel brokers), comme Hurricane Electric [3] ou SixXS [4] réside dans ses possibilités et sa facilité de mise en œuvre. Cette simplicité provient d’un petit programme client appelé gw6c, installé sur le réseau local de l’internaute, qui négocie avec un serveur Hexago quelques paramètres avant de créer le tunnel adéquat. En outre, il est possible de demander (gratuitement) la propagation d’IPv6 sur le réseau local/familial. De nombreuses plateformes peuvent bénéficier de ce service, incluant Windows qui est le seul bénéficiaire d’une interface graphique permettant de configurer le client et de visualiser le statut de la connexion. Qu’à cela ne tienne, vi et emacs sont mes amis et feront l’affaire pour Linux.
Installation
Bien que la documentation spécifie l’existence de paquets binaires pour Debian et RedHat, ceux-ci ne sont plus disponibles sur le site go6.net [5]. Toutefois, la compilation et l’installation à partir des sources ne posent aucun problème, en tout cas sur Ubuntu 7.10 et Fedora8.
Après avoir récupérés et extraits les sources, la séquence de commandes suivante compilera et installera les binaires dans /usr/local/gw6c :
# cd tspc-advanced # make all target=linux # make target=linux installdir=/usr/local/gw6c
Il ne reste plus qu’à lancer le client gw6c à partir de son répertoire d’installation (Figure 1) :
# cd /usr/local/gw6c/bin # ./gw6c
Le client gw6c prendra ses paramètres dans le fichier de configuration gw6c.conf situé dans le même répertoire que l’exécutable. Sans aucune modification, gw6c contactera (via IPv4) le serveur anon.freenet6.net et s’authentifiera comme client anonyme.
Création du tunnel ad hoc
De manière automatique, gw6c détectera s’il se trouve sur un réseau " translaté " (NAT). Cette information conditionnera le type de tunnel à établir entre le client et le serveur Hexago ; si gw6c se trouve sur un réseau non translaté, les trames IPv6 seront encapsulées directement dans des trames IPv4. On parlera d’un tunnel de type ipv6-in-ipv4 ou encore v6v4 dans la terminologie gwc6.
En revanche, les trames IPv6 seront placées dans des paquets UDP avant d’être transportées via IPv4 vers la sortie du tunnel, dans le cas où gw6c se trouve sur un réseau " NATé ". Dans ce cas, il y aura établissement d’un tunnel ipv6-in-UDP-in-IPv4 ou encore v6udpv4.
Les dialogues préliminaires à l’établissement du tunnel entre le client et le serveur font partie d’un protocole appelé " TSP " pour Tunnel Setup Protocol. Bien que ce protocole n’ait pas été standardisé par l’IETF (Internet Engineering Task force), Hexago l’a implémenté dans ses routeurs, et c’est tant mieux.

Figure 1 : Connexion anonyme du client gw6c
En cas de connexion et de dialogue réussis entre le client et le serveur Hexago, gw6c crée le tunnel tun ad hoc, lui affecte une adresse IPv6 (Figure 2) et crée une route permettant de surfer sur l’Internet IPv6 et donc, de voir la tortue animée de kame.net. Le serveur ripe.net est aussi très intéressant à consulter, car il affiche, en haut à droite de sa page d’accueil, l’adresse du butineur, ce qui permet de vérifier quel protocole IP est utilisé.

Figure 2 : Entrée du tunnel anonyme créé par gw6c.
Utilisation avancée
Pour une utilisation avancée du client gw6c, on devra éditer le fichier de configuration gw6c.conf. Les paramètres les plus importants de ce fichier sont les suivants :
server=anon.freenet6.net auth_method=anonymous host_type=host tunnel_mode=v6anyv4
Le paramètre server pourra contenir tout nom de serveur Hexago ou autre connaissant le protocole TSP. Hexago met gracieusement à disposition les serveurs anon et broker.freenet6.net. Le premier ne sert qu’aux connexions anonymes et le second est utilisable en connexion anonyme ou avec authentification formelle.
Dans ce dernier cas, on précisera auth_method=any et on devra fournir un userid et un passwd enregistrables gratuitement sur le site de Freenet6.
Si on souhaite propager un préfixe IPv6 (numéro de subnet) sur le réseau local, on précisera host_type=router. En conséquence, le client gw6c configurera et démarrera automatiquement le démon radvd (Router ADvertisement Deamon) qui propagera le préfixe fourni par le serveur gw6 via l’interface spécifiée dans la variable if_prefix.
Les paramètres du fichier de configuration sont très bien décrits dans la page du manuel de gw6c.conf fourni avec les sources du client gw6c.
Voici les paramètres d’une connexion avec authentification au serveur broker.freenet6.net demandant la diffusion d’un préfixe IPv6 via l’interface eth0 sur mon propre réseau local (Figure 3) :
userid=donze passwd=xxxxxx server=broker.freenet6.net auth_method=any host_type=router prefixlen=64 if_prefix=eth0 dns_server=ns1.afraid.org:ns2.afraid.org

Figure 3 : Connexion authentifiée avec demande de diffusion de préfixe
La différence avec la connexion anonyme de la figure 2 est que l’interface réseau eth0 bénéficie d’une adresse IPv6 globale commençant par 2001, en plus de l’adresse non routable (locale) commençant par fe80. Cette adresse globale constitue la porte de sortie (gateway) utilisée par les autres systèmes du réseau pour accéder à l’internet ; autrement dit, les paquets envoyés sur l’internet IPv6 par les ordinateurs du réseau local seront placés dans le tunnel tun par l’interface eth0 de notre routeur IPv6.

Figure 4 : Annonce du préfixe 2001:05c0:9925::/64 par le démon radvd

 Figure 5 : Annonce du préfixe IPv6 fourni par Hexago sur le réseau local
La dernière ligne des paramètres de configuration mentionnés plus haut (dns_server=ns1.afraid.org ;ns2.afraid.org) stipule l’enregistrement de l’adresse IPv6 de l’interface eth0 dans les serveurs DNS dynamiques ns1 et ns2.afraid.org. La figure 6 montre que l’adresse IPv6 2001:5c0:9925::1 a été enregistrée automatiquement sous le nom lorolid-go6.donze.org. Le client gw6c a utilisé le paramètre userid=donze pour demander la création du domaine donze.org. Ensuite, il a demandé l’insertion d’un enregistrement AAAA, associant le nom de mon système suivi de go6 (lorolid-go6) avec l’adresse IPv6 de l’interface eth0.

Figure 6 : Résolution DNS inverse
Ensuite ?
Maintenant que l’infrastructure de base est installée, un nombre important d’exercices sont possibles permettant de mieux connaître IPv6. On peut par exemple tracer et décortiquer le processus d’auto-configuration comme expliqué dans le GNU/Linux magazine 55 (novembre 2003). Il suffira de lancer Wireshark sur le réseau local, de filtrer les trames " ip6 " et de démarrer un ordinateur configuré avec IPv6.
Le DNS est aussi un domaine d’investigation intéressant, surtout depuis le 4 février dernier, date à laquelle six serveurs racines (root servers) disposent d’une adresse IPv6 et peuvent donc être sollicités via IPv6 [6]. Et pour effectuer des résolutions de nom inverses, il sera plus simple d’utiliser des outils comme la calculatrice ipv6cal.
Le client gw6c est la solution à mettre en œuvre pour contacter via IPv6 le serveur familial disposant déjà d’une adresse IPv6 provenant de Free.fr ou d’Hexago. En effet, si votre école ou faculté ne vous fournit pas un préfixe IPv6 et que vous souhaitiez effectuer des tests distants sur votre système familial, vous pourrez lancer le client gw6c et vous connecter chez vous via IPv6. La seule restriction est que les ports TCP et UDP 3653 utilisés par le gw6c ne soient pas bloqués par un pare-feu éventuel de votre école, faculté ou entreprise.
Conclusion
Jusqu’à récemment, il fallait connaître IPv6 pour l’apprendre ; il fallait maîtriser la terminologie, les différents types d’adresses, la configuration du démon radvd… Aujourd’hui, Free.fr ainsi que le service Freenet6 permettent un accès initial simple à cette nouvelle technologie qui fait parler d’elle jusque dans les milieux politiques ; en effet, le rapport Attali (chapitre 3, décision 62) [7] stipule entre autres que " l’Europe ou du moins la France doit d’ici 2010 définir un calendrier de migration [d’IPv4 vers IPv6] "…
Références :
- [1] http://www.hexago.com
- [2] http://go6.net/4105/freenet.asp
- [3] http://www.tunnelbroker.net/
- [4] http://www.sixxs.net/
- [5] http://go6.net/4105/register.asp
- [6] http://www.icann.org/announcements/announcement-04feb08.htm
- [7] http://www.liberationdelacroissance.fr/files/rapports/rapportCLCF.pdf
 Retrouvez cet article dans : Linux Magazine 104


