====== Tunnel IPv6 ======
Le protocole **IPv4** se fait vieux et nous ne disposons plus d'adresses publiques allouables. Une nouvelle version du protocole est censée le remplacer (mais sûrement pas de manière totale). Ce nouveau protocole est **IPv6**.
La bonne nouvelle avec IPv6 est qu'il est possible de créer énormément d'adresses (environ 340 sexti-llions). Cela permet de supprimer le besoin de systèmes de traduction d'adresses (NAT). Afin d'être prêt à utiliser IPv6 certains entreprises offrent gratuitement des tunnels. Ces entreprises sont aussi connues comme //tunnels brokers//.
[[http://tunnelbroker.net/|Hurricane Electric]] fait partie de ces brokers. Il est possible de s'enregistrer sur le site web et d'obtenir son propresous-réseau IPv6 **/64**. Il est aussi possible de demander l'obtention d'un **/48** si l'on compte utiliser beaucoup d'adresses.
Ici nous allons voir comment mettre en place un tunnel IPv6 afin de pouvoir se connecter à un serveur avec le protocole IPv6. Afin de tester il faut bien sûr disposer d'une connexion supportant IPv6 (Free le propose depuis un bon moment).
Pour commencer il faut s'enregistrer sur le site web de HE. Lors de la création du tunnel, on nous demander de donner un //IPv4 Endpoint//. C'est l'adresse IPv4 de notre serveur. Nous devons aussi sélectionner un serveur tunnel à utiliser. Utilisons celui de Paris en France, **216.66.84.42**.
Une fois le tunnel créé, nous pouvons commencer sa configuration.
La partie //IPv6 Tunnel Endpoints// de la page web nous donner des informations concernant la mise en place du lien d'interconnexion. Sur notre machine en tant que **root** il faut éditer le fichier///etc/network/interfaces// et ajouter une interface qui servira à se connecter au serveur tunnel. On ajoute donc les lignes suivante.
# IPv6 tunnel
auto hev6
iface hev6 inet6 v4tunnel
address CLIENT_IPV6_ADDRESS
netmask 64
local CLIENT_IPV4_ADDRESS
endpoint SERVER_IPV4_ADDRESS
gateway SERVER_IPV6_ADDRESS
ttl 64
up ip link set mtu 1280 dev hev6
On peut maintenant sauvegarder et recharger la configuration réseau.
/etc/init.d/networking restart
Ce n'est pas terminé. Nous ne devons pas utiliser le sous-réseau d'interconnexion **/64** pour héberger des services. Nous allons donc utiliser notre vrai sous-réseau **/64** qui nous est alloué. On peut voir notre sous-réseau alloué dans la section appelée //Routed IPv6 Prefixes//. Le champ nommé //Routed /64// correspond à l'adresse du sous-réseau. On remarque que ce n'est pas le même que le sous-réseau d'interconnexion mais cela ne pose pas de problème.
On édite de nouveau le fichier ///etc/network/interfaces// et on ajoute une nouvelle adresse IPv6 à notre interface réseau, par exemple, **eth0**. Le masque réseau à utiliser est **64** et nous pouvons donner une adresse comprise entre **RÉSEAU_64_ALLOUÉ::1** et **RÉSEAU_64_ALLOUÉ:ffff:ffff:ffff:ffff**. Par exemple,
iface eth0 inet6 static
address 2001:470:1f13:910::1
netmask 64
Après avoir rechargé la configuration réseau nous devrions pouvoir envoyer un ping à notre serveur. Ah non ! Il manque quelque chose. Il faut juste autoriser un nouveau protocole à traverser le firewall (vous utilisez un firewall non ?). En fait nous utilisons de l'IPv6 dans de l'IPv4, il faut donc autoriser l'utilisation du protocole **6in4** utilisant le nombre **41**. Le paquets IPv6 ne provenant que du serveur tunnel, on peut filtrer l'entrée en acceptant seulement les paquets venant de l'adresse IPv4 du serveur tunnel.
allow_6in4_protocol() {
[ $# -ne 1 ] && exit 1
print_debug "Allowing IPv6 in IPv4 protocol"
iptables -t filter -A INPUT -s ${1} -p 41 -j ACCEPT
iptables -t filter -A OUTPUT -p 41 -j ACCEPT
end_debug $?
}
Une fois le firewall reconfiguré, nous devrons pouvoir envoyer un ping à notre serveur en IPv6.
ping6 2001:470:1f13:910::1
IPv6 est un protocole sympa(réécrit de 0) mais les adresses ne sont pas simples à mémoriser. Afin d'utiliser des noms de domaines à la place d'adresses IP, il faut configurer nos serveurs DNS. Un nouveau type d'enregistrement doit être utilisé afin de spécifier une adresse IPv6. Il faut utiliser les enregistrements **AAAA**. Dans Bind9, par exemple, on doit ajouter :
IN AAAA 2001:470:1f13:910::1
Une fois que la configuration des DNS se sera suffisamment répandue, on devrait pouvoir envoyer un ping à notre serveur en utiliser son nom de domaine.
ping6 respawner.fr
Afin d'utiliser l'adresse IPv6 certains services doivent être redémarrés (Apache 2, etc...) d'autres non. Afin de s'assurer que la configuration sera permanente et que les service utilisent bien l'adresse IPv6 il est conseillé de redémarrer le serveur.