4.1. Un noyau prêt pour IPv6

Les distributions contemporaines de Linux comportent déjà un noyau prêt pour IPv6, les capacités IPv6 sont en général compilées dans un module, mais il est possible que ce module ne soit pas chargé automatiquement au démarrage.

Voir la page IPv6+Linux-status-distributions pour obtenir les informations les plus à jour.

Note: vous ne devriez plus utiliser les noyaux de la série 2.2.x; car ils ne sont pas assez à jour vis-à-vis d'IPv6.

4.1.1. Vérifier la présence du support IPv6 dans le noyau actuellement en cours d'utilisation

Afin de vérifier si oui ou non votre actuel noyau supporte IPv6, jetez un coup d'oeil dans votre système de fichiers /proc. Les entrées qui suivent doivent être présentes:

/proc/net/if_inet6

Un bref test automatique ressemble à:

# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"

Si cela échoue, cela peut être parce que le module IPv6 n'est pas chargé.

4.1.2. Essayer de charger le module IPv6

Vous pouvez tenter de charger le module IPv6 en exécutant

# modprobe ipv6

Si c'est un succès, la présence de ce module sera testée comme par magie par la ligne suivante:

# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"

Et la vérification montrée plus haut devrait maintenant se faire elle aussi avec succès.

Note: enlever le module n'est actuellement pas supporté et peut aboutir, sous certaines conditions, au crash du noyau.

4.1.2.1. Le chargement automatique du module

Il est possible d'automatiser le chargement du module IPv6 à la demande. Vous avez juste à ajouter les lignes qui suivent dans le fichier de configuration du chargeur de modules du noyau (normalement /etc/modules.conf ou /etc/conf.modules):

alias net-pf-10 ipv6  # chargement automatique du module IPv6 à la demande

Il est aussi possible de mettre hors service le chargement automatique du module IPv6 en utilisant la ligne suivante

alias net-pf-10 off   # rend indisponible le chargement automatique du module IPv6

Note additionnelle: pour les noyaux de la série 2.6,le mécanisme du chargeur de modules a été repensé. Le nouveau fichier de configuration s'appellera /etc/modprobe.conf au lieu de /etc/modules.conf. Pour de plus amples détails voir le module-init-tool

  • Compiler un noyau à partir des seules sources brutes (facile, si vous connaissez les options dont vous avez besoin)

  • Recompiler les sources du noyau fournies par votre distribution Linux (parfois, ce n'est si simple que ça)

  • Compiler un noyau avec l'extension USAGI

Si vous vous décidez à compiler un noyau, vous devriez avoir une certaine expérience dans la compilation de noyau et lire l'HOWTO sur le noyau Linux.

La comparaison pratiquement la plus à jour entre un noyau original et un noyau comprenant USAGI est disponible dans IPv6+Linux-status-kernel.

4.1.2.2. Compiler un noyau uniquement à partir des sources originales (vanille)

Plus d'éléments concernant la compilation d'un noyau disposant d'IPv6 peuvent par exemple être trouvés dans IPv6-HOWTO-2#kernel.

Note: vous devriez autant que possible utiliser les noyaux de la série 2.6.x ou supérieures,car le support IPv6 de la série 2.4.x n'obtiendra qu'un portage partielet celui de la série 2.2.x est désespérément obsolète.).

4.1.2.3. Compiler un noyau avec l'extension USAGI

Comme pour le noyau vanille, seulement recommandé aux utilisateurs avancés, déjà familiarisés avec IPv6 et la compilation noyau. Voir aussi la FAQ du projet USAGI et comment obtenir le meilleur support IPv6 avec Linux (article) (miroir).

4.1.3. Les périphériques réseau prêts pour IPv6

Les périphériques réseau n'ont pas tous déjà (ou n'auront jamais, pour certains) la capacité de transporter des paquets IPv6. L'état actuel de la situation quant à ce sujet peut être trouvé ici.

A cause de l'implémentation de la structure de la couche réseau du noyau, un problème majeur est qu'un paquet IPv6 n'est pas réellement reconnu par son numéro d'en-tête IP (6 au lieu de 4). Il est reconnu par le numéro de protocole de la couche transport 2. En conséquence, tout protocole n'utilisant pas un tel numéro de protocole ne peut pas distribuer les paquets IPv6. Note: le paquet est bien encore transporté sur le lien, mais, côté récepteur, la distribution ne fonctionne pas (vous pouvez observer cela par exemple avec tcpdump).

4.1.3.1. Actuellement connus pour ne jamais être ”capables de lien IPv6”

  • IP sur Ligne Série (Serial Line IP, SLIP, RFC 1055 / SLIP), serait aujourd'hui mieux dénommé SLIPv4, noms de périphérique: slX

  • IP sur Ligne Parallèle, comme pour SLIP, noms de périphérique: plipX

  • RNIS avec encapsulation rawip, noms de périphérique: isdnX

4.1.3.2. Actuellement connu pour ne pas être ”capable de lien IPv6”

  • RNIS avec encapsulation syncppp, noms de périphérique: ipppX (au sujet de la conception de ipppd, il fusionnera dans une couche PPP plus abstraite dans la série des noyaux 2.5.x)