Se faire une "IPv6 Box"
Rédigé par Xavier - -
Dans un article précédent j'ai cité un moyen d'utiliser IPv6 à travers un tunnel IPv4. Or il faut répéter la manipulation sur chaque machine, ce qui n'est pas très pratique, encore moins pour les appareils mobiles (Android).
Est-il possible de "déporter" cette passerelle sur une machine (serveur) et pousser automatiquement la configuration aux machines du réseau ? Oui ! Nous allons voir comment mettre en place une "IPv6 Box".

Comme le montre le schéma ci-dessus, la passerelle ne nécessite pas de structure particulière du réseau, elle se branche simplement sur le routeur (*box) comme n'importe quel autre périphérique. Aucune configuration ne sera nécessaire (c'est la magie de l'IPv6) sur les autres machines du réseau.
Le serveur
Il peut être physique ou virtuel (réseau bridge). Il n'y a besoin que d'une interface réseau ce qui simplifie amplement les choses. Ce serveur va :
- Établir et maintenir une connexion au tunnel IPv6
- Faire office de passerelle pour les machines du réseau
- Utiliser le daemon RADVD pour manifester sa présence sur le réseau (les machines s'auto configureront)
Le tutoriel est fait avec Debian, mais devrait fonctionner sur Ubuntu.
Demander un préfixe /48
Commencez par vous inscrire sur le site de Hurricane Electric, et créer un nouveau tunnel. Vous allez pouvoir choisir votre point de sortie (Paris) et spécifier votre adresse IP. Par la suite demandez un préfixe /48 en cliquant sur le bouton Assign, sur la page qui récapitule les paramètres de votre tunnel.

Voici ce que vous devriez obtenir :

Configuration de Debian
Le serveur dispose d'une interface réseau eth0 avec les paramètres suivants :
- Adresse IP fixe, 192.168.0.10/24
- Passerelle IPv4 (*Box) : 192.168.0.254
- Adresse IPv6 du tunnel : 2001:470:c851:10::1/64
- Adresse IPv6 eth0 : 2001:470:c851:192::1/64
Les adresses IPv6 choisies font partie du préfixe /48 attribué (2001:470:c851::). Aidez-vous du calculateur IPv6 Calculator si besoin.
Ouvrez et modifiez /etc/network/interfaces comme ceci :
auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.254 iface eth0 inet6 static address 2001:470:c851:192::1 netmask 64 auto he-ipv6 iface he-ipv6 inet6 v4tunnel address 2001:470:c851:10::1 netmask 64 endpoint 216.66.84.42 ttl 255 gateway 2001:470:c851::1
Puis relancez le réseau avec la commande suivante (ou redémarrez le serveur) :
# service networking restart
Pour vérifier que le tunnel est bien en place, tapez la commande suivante :
# ping6 google.com
Ou alors :
# apt-get update
(Si vous utilisez les dépôts Debian par défaut, ils sont accessibles en IPv6...).
Radvd
Un réseau en IPv6 n'a pas besoin de serveur DHCP. En effet, le routeur va manifester sa présence sur le réseau, et les machines vont s'auto-configurer (Stateless Address Autoconfiguration, SLAAC). On va donc installer Radvd :
# apt-get install radvd
Créez le fichier /etc/radvd.conf et ajoutez :
interface eth0 { IgnoreIfMissing on; AdvSendAdvert on; MinRtrAdvInterval 30; MaxRtrAdvInterval 60; prefix 2001:470:c851:192::/64 { AdvOnLink on; AdvAutonomous on; AdvRouterAddr on; }; };
Lancez ensuite le service :
# service radvd start
Vérifications
Redémarrez une des machines de votre réseau, et vérifiez si elle récupère bien une IPv6. Attention, si cette machine utilise network-manager, il se peut que l'IPv6 soit désactivé par défaut ! Dans ce cas, éditez votre connexion réseau, et dans l'onglet "Paramètres IPv6" sélectionnez "Automatique". La capture d'écran ci-dessous montre le paramétrage sur CentOS6 + Gnome2 mais reste similaire sur Fedora et KDE.

Allez sur le site test-ipv6.com. Si vous obtenez un 10/10, c'est bon !