Dernière mise à jour : 31/08/2005
Cet article a pour but de vous initier aux joies de l'IPv6 sur votre pingouin favori. Je traiterais ici des quelques généralités de l'IPv6 et de sa configuration par le biais d'une machine sous Debian en faisant l'installation d'un tunnel. La fin de l'article traitera enfin de l'assignation automatique d'adresses IPv6 par "router advertisement". Voici la seconde révision de cet article, vous pouvez à présent trouver sur le site un article pour configurer votre DNS avec l'IPv6. Cette seconde révision vous permet de configurer un tunnel avec une adresse dynamique, si vous êtes dans ce cas, cliquez ici.
L'IPv6 est né de la nécessité de créer plus d'adresses réseau. L'IPv4 est en effet arrivé à bout de soufle et les PDA, téléphones portables et autres réseaux sans fil demandent eux aussi des adresses supplémentaires. Je vous conseille le premier lien pour avoir une vue générale de l'IPv6. IPv4 est le protocole le plus communément utilisé et sera remplacé dans 20 ans, ce qui devrait laisser de la marge pour déboguer le nouveau protocole :) Pour la partie configuration de tunnel, j'ai utilisé SixXs mais il en existe d'autres. Il vous faudra donc ouvrir un compte puis demander un tunnel. Si tout va bien, on devrait vous assigner quelque chose ressemblant à çà : 2001:130:200:87::6 (cette adresse est un exemple) ainsi qu'une adresse IPv4 genre : 193.1.27.95. Il vous faut ensuite configurer le kernel pour accepter l'ipv6, activez ceci :
-
Networking options --->
[M] The IPv6 protocol (EXPERIMENTAL)
IPv6: Netfilter Configuration --->
[M] limit match support
[M] MAC address match support
[M] Routing header match support (EXPERIMENTAL)
[M] Hop-by-Hop and Dst opts header match (EXPERIMENTAL)
[M] Fragmentation header match support (EXPERIMENTAL)
[M] HL match support
[M] Multiple port match support
[M] Owner match support (EXPERIMENTAL)
[M] netfilter MARK match support
[M] IPv6 Extension Headers Match (EXPERIMENTAL)
[M] AH/ESP match support (EXPERIMENTAL)
[M] Packet Length match support
[M] EUI64 address check (EXPERIMENTAL)
[M] Packet filtering
[M] LOG target support
[M] Packet mangling
[M] MARK target support
Recompilez ensuite votre bête et redémarrez la machine sur le nouveau kernel. Au niveau paquets, je vous conseille une petite visite sur le projet IPv6 Debian et à ce sujet ajouter un des miroirs disponibles sur cette page. Installez ensuite les paquets suivants : iputils-tracepath iputils-ping. Vous devez ensuite installer le tunnel dans votre configuration réseau. Pour se faire éditez /etc/network/interfaces et ajoutez la partie ci-dessous. Notez bien que je nomme ma configuration sixxs juste car c'est le nom de mon fournisseur IPv6. Consultez la page d'aide sur le site de SixXS pour plus d'informations sur la façon de configurer ceci.
-
auto lo eth0 sixxs
iface sixxs inet6 v4tunnel
address 2001:130:200:87::2
netmask 64
endpoint 193.1.27.95
ttl 64
up ip link set mtu 1280 dev sixxs
up ip route add 2000::/3 via 2001:130:200:87::1 dev sixxs
up ip tunnel change sixxs ttl 64
A ce point, il ne vous reste plus qu'à activer votre tunnel (il est bien sûr nécessaire d'avoir une connexion permanente vers l'internet) par un /etc/init.d/network restart. Si tout va bien, vous devriez obtenir une nouvelle interface. Pour la consulter, faîtes ifconfig -a. Voici la mienne. Notez également qu'une adresse IPv6 commencant par fe80 est locale.
-
sixxs Link encap:IPv6-in-IPv4
inet6 addr: 2001:130:200:87::2/64 Scope:Global
inet6 addr: fe80::d88f:2004/64 Scope:Link
inet6 addr: fe80::c0f6:ed/64 Scope:Link
UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1
Pour tester votre connexion, tentez donc un ping6 2001:130:200:87::2 (votre adresse locale) puis un ping6 2001:130:200:87::1 (l'adresse d'arrivée du tunnel). Vous devriez obtenir ce qui est affiché ci-dessous. la latence sera forcément moins longue sur l'adresse locale tandis que le lien vers le point d'arrivée dépend de votre ADSL :
-
ping6 2001:130:200:87::2
PING 2001:130:200:87::2(2001:130:200:87::2) from ::1 : 56 data bytes
64 bytes from 2001:130:200:87::2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from 2001:130:200:87::2: icmp_seq=2 ttl=64 time=0.054 ms
ping6 2001:130:200:87::1
PING 2001:130:200:87::1(2001:130:200:87::1) from 2001:130:200:87::2 : 56 data bytes
64 bytes from 2001:130:200:87::1: icmp_seq=1 ttl=64 time=66.2 ms
64 bytes from 2001:130:200:87::1: icmp_seq=2 ttl=64 time=64.5 ms
Félicitations ! Vous venez de finir de paramétrer votre tunnel IPv6 :) Vous pouvez tester ceci avec la tortue dansante de http://www.kame.net. Ainsi si vous tentez ce site en IPv4, vous ne verrez rien de particulier se lancer.
Il vous reste à présent à configurer votre réseau interne pour IPv6. Imaginons que la machine Debian sur laquelle vous avez configuré votre accès IPv6 soit en fait un routeur/passerelle qui gère votre lien ADSL (total hasard hein ? ;). Vous pouvez alors installer radvd. Ce superbe petit programme permet d'installer aisemment une attribution automatique d'adresses IPv6 pour votre réseau (elles sont en partie calculées sur l'adresses MAC de votre carte réseau). Demandez donc à votre fournisseur un sous-réseau (subnet). Dans notre exemple nous avons : 2001:130:20e::/48. La première chose à faire est de découper ce sous-réseau pour en faire un /64. Je décide donc d'utiliser 2001:130:20e:10::/64. Editez donc /etc/radvd.conf et ajoutez :
-
interface eth0
{
AdvSendAdvert on;
prefix 2001:130:20e:10::/64
{
AdvOnLink on;
AdvAutonomous on;
};
};
Il faut ensuite assigner une adresse ipv6 au routeur Debian, choisissant une adresse dans le même sous- réseau, j'édite /etc/network/interfaces pour contenir les lignes ci-dessous. Faites ensuite un /etc/init.d/network restart.
-
iface eth0 inet6 static
address 2001:130:20e:10::1
netmask 64
Configuration dynamique
Si vous avez bien suivi tout cet article, vous aurez donc constaté qu'il ne s'occuppe que de la partie statique des adresses IP. La bonne nouvelle est que SixXS a créé un outil fabuleux pour Debian (mais aussi tous les autres systèmes d'exploitation) du nom de aiccu (Automatic IPv6 Connectivity Client Utility). Vous pouvez donc le télécharger et l'installer sur votre système préféré. Il vous faudra ensuite éditer /etc/aiccu.conf et changer les entrées suivantes :
# AICCU Configuration # Login information username 'votre_handle_ipv6 password 'votre_mot_de_passe' # Interface names to use ipv4_interface ppp0 ipv6_interface sixxs # The tunnel_id to use # (only required when there are multiple tunnels in the list) tunnel_id Txxx (remplacez xxx par votre tunnel)
Il ne vous reste alors qu'a changer votre /etc/network/interfaces pour ceci :
iface sixxs inet6 v4tunnel address 2001:130:200:87::2 netmask 64 endpoint 193.1.27.95 ttl 64 up ip link set mtu 1280 dev sixxs up ip route add 2000::/3 via 2001:130:200:87::1 dev sixxs up ip tunnel change sixxs ttl 64
Vous pouvez alors démarrer votre tunnel par un simple : /etc/init.d/aiccu start. Ensuite l'allocation et le changement d'adresse IPv4 sera automatiquement renseignée par le programme et votre route IPv6 automatiquement recrée. Je le teste depuis quelques mois sans aucun problème.
Bravo ! Vous pouvez à présent surfer en ipv6 avec Mozilla par exemple qui est généralement compilé avec support ipv6 par défaut.