AS201281 Wiki

Your check engine light is on!

User Tools

Site Tools


gnu_linux_server:network_configuration:ipv6_tunnel

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.

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.

gnu_linux_server/network_configuration/ipv6_tunnel.txt · Last modified: 2021/01/04 20:41 by 127.0.0.1