Product SiteDocumentation Site

10.5. IPv6

IPv6 — successeur d'IPv4 — est une nouvelle version du protocole IP, qui doit en corriger les défauts et notamment le nombre trop faible d'adresses IP existantes. Ce protocole gère la couche réseau, il offre ainsi la possibilité d'adresser les machines (c'est-à-dire de faire parvenir les données à leur destination connue par une adresse) et de fragmenter les données (à savoir de les découper en tronçons dépendants de la taille des différents liens empruntés en chemin, et de les réassembler à l'arrivée).
Les noyaux Debian prennent systématiquement IPv6 en charge, le code correspondant étant intégré à l'image de base (à part pour certaines architectures, qui ne le proposent que dans un module ipv6 optionnel). Les outils de base comme ping et traceroute ont pour équivalents IPv6 ping6 et traceroute6, respectivement disponibles dans les paquets Debian iputils-ping et iputils-tracepath.
On peut configurer le réseau IPv6 comme un réseau IPv4, à travers le fichier /etc/network/interfaces. Pour ne pas se contenter d'un réseau IPv6 privé, il faut cependant disposer d'un routeur capable de relayer le trafic sur le réseau IPv6 global.

Exemple 10.10. Exemple de configuration IPv6

iface eth0 inet6 static
    address 2001:db8:1234:5::1:1
    netmask 64
    # Pour désactiver l'auto-configuration:
    # autoconf 0
    # Le routeur est auto-configuré et n'a pas d'adresse fixe.
    # (/proc/sys/net/ipv6/conf/all/accept_ra). Sinon pour le forcer:
    # gateway 2001:db8:1234:5::1
Les sous-réseaux IPv6 ont généralement un masque de 64 bits, ce qui autorise 264 adresses dans le sous-réseau. Cela permet l'autoconfiguration d'adresses sans état (Stateless Address Autoconfiguration ou SLAAC), qui choisit une adresse IPv6 à partir de l'adresse MAC de l'interface. Par défaut, si SLAAC est actif sur le réseau et IPv6 actif sur un ordinateur, le noyau va automatiquement trouver les routeurs IPv6 et configurer les interfaces.
Ce comportement a des implications en termes de fuites d'information. Lorsqu'on change fréquemment de réseau, par exemple avec un ordinateur portable, on ne souhaite pas forcément que l'adresse MAC fasse partie de l'adresse IPv6 publique, puisque cela permet d'identifier aisément le même ordinateur sur des réseaux différents. Ce problème se résout grâce à une extension d'IPv6 (que Debian active par défaut si une connexion IPv6 fonctionnelle est détectée à l'installation initiale), qui remplace cette adresse MAC par un composant aléatoire, qui renouvelle ce composant de manière régulière et qui utilise l'adresse résultante pour les connexions sortantes. Les connexions entrantes peuvent continuer d'utiliser les adresses générées par SLAAC. L'exemple qui suit, à insérer dans /etc/network/interfaces, active cette extension.

Exemple 10.11. Extension d'IPv6 pour la protection des données personnelles

iface eth0 inet6 auto
    # Préférer l'adresse générée aléatoirement pour les connexions sortantes
    privext 2
Les connexions IPv6 peuvent être filtrées et restreintes comme avec IPv4 : il existe une adaptation de netfilter pour l'IPv6 compilée dans les noyaux Debian. Elle se configure comme la version classique, mais avec le programme ip6tables en lieu et place d'iptables.

10.5.1. Tunnel

En l'absence d'une connexion native en IPv6, on peut toujours s'y connecter via un tunnel sur IPv4. Gogo6 est un fournisseur gratuit de tels tunnels :
Pour exploiter cette possibilité, il faut s'inscrire et créer un compte Freenet6 Pro sur ce site web puis installer le paquet Debian gogoc et configurer ce tunnel. On intégrera au fichier /etc/gogoc/gogoc.conf les lignes userid et password reçues par courrier électronique et on remplacera server par authenticated.freenet6.net.
On proposera une connectivité IPv6 à toutes les machines du réseau local en modifiant dans le fichier /etc/gogoc/gogoc.conf les trois directives ci-dessous (le réseau local est supposé connecté à l'interface eth0) :
host_type=router
prefixlen=56
if_prefix=eth0
La machine est alors le routeur d'accès à un sous-réseau dont le préfixe fait 56 bits. Le tunnel désormais averti, il faut encore informer le réseau local de cette caractéristique en installant le démon radvd (du paquet éponyme). C'est un démon de configuration IPv6 jouant le même rôle que dhcpd pour le monde IPv4.
Il faut ensuite créer son fichier de configuration /etc/radvd.conf (par exemple en adaptant le fichier /usr/share/doc/radvd/examples/simple-radvd.conf). En l'occurrence, le seul changement nécessaire est le préfixe, qu'il faut remplacer par celui fourni par Freenet6 (que l'on retrouvera dans la sortie de la commande ifconfig dans le bloc relatif à l'interface tun).
Après les commandes service gogoc restart et service radvd start, le réseau IPv6 sera enfin fonctionnel.