Maniatux's Blog

Welcome to the internet

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 !