Il existe actuellement deux souches logicielles de la mobilité IPv6 pour Linux. L'université anglaise de Lancaster a réalisé la première souche historique (http://www.cs-ipv6.lancs.ac.uk/MobileIP/). Le noyau géré le plus récent est le 2.1.90 et la mise en œuvre est compatible avec la version 5 du document de travail relatif à la mobilité IPv6 de l'IETF (ce document en est actuellement à la version 24). Le code source et le site web n'ont pas été mis à jour depuis 1998. L'ensemble est donc considéré obsolète.
L'autre souche, réalisée dans le cadre du projet MIPL de l'université de technologie d'Helsinki, est davantage à jour. Le noyau le plus récent pris en charge est le 2.4.22 et des greffons de code existent pour la série des noyaux 2.6 (se reporter à la FAQ). Le site http://www.mobile-ipv6.org/ contient des documents, le logiciel et une archive des discussions par courrier électronique.
La souche MIPL de MIPv6 demande une mise à niveau du noyau. Elle modifie la pile IPv6 de ce dernier. Une recompilation est donc nécessaire. La procédure est correctement documentée mais un rapide aperçu des étapes est donné ci-dessous.
Remarque importante : il n'est plus nécessaire de compiler deux noyaux différents (un pour la station mobile et l'autre pour la station d'accueil). Il suffit de compiler la prise en charge de la station mobile et celle de la station d'accueil dans le même noyau. Il n'est cependant pas possible de faire fonctionner le noyau à la fois pour une station mobile et pour une station d'accueil : le mode retenu dépend du module chargé.
On commence par télécharger le dernier code source de MIPv6 pour Linux à l'adresse http://www.mobile-ipv6.org/. La dernière version à jour est mipv6-1.0-v2.4.22. Les quatre derniers chiffres indiquent le noyau Linux auquel le greffon doit être appliqué.
# cd /usr/local/src # wget http://www.mobile-ipv6.org/download/mipv6-1.0-v2.4.22.tar.gz # tar zxfv mipv6-1.0-v2.4.22.tar.gz
On télécharge et on décompresse ensuite le noyau Linux correspondant depuis le site ftp.kernel.org :
# cd /usr/src # wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2 # tar jxvf linux-2.4.22.tar.bz2 # ln -s linux-2.4.22 linux # cd linux
Application du greffon MIPv6 :
# patch -p1 --dry-run < /usr/local/src/mipv6-1.0-v2.4.22/mipv6-1.0-v2.4.22.patch
L'option --dry-run vérifie que le greffon est applicable. Si un fragment est rejeté, il vaut mieux ne pas continuer. Si tout se déroule correctement, on peut effectivement appliquer les modifications :
# patch -p1 < /usr/local/src/mipv6-1.0-v2.4.22/mipv6-1.0-v2.4.22.patch
L'arborescence du noyau Linux est maintenant prête à être configurée. On exécute la commande make *config de son choix. Les options de configuration de MIPv6 se trouvent sous le menu « Networking Options ». Les options ci-dessous devraient apparaître dans le fichier « .config » :
CONFIG_EXPERIMENTAL=y CONFIG_SYSCTL=y CONFIG_PROC_FS=y CONFIG_MODULES=y CONFIG_NET=y CONFIG_NETFILTER=y CONFIG_UNIX=y CONFIG_INET=y CONFIG_IPV6=m CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_IPV6_TUNNEL=m CONFIG_IPV6_MOBILITY=m CONFIG_IPV6_MOBILITY_MN=m CONFIG_IPV6_MOBILITY_HA=m
Comme le développement de MIPL n'est pas encore achevé, il peut être utile d'activer :
CONFIG_IPV6_MOBILITY_DEBUG=y
Les messages de mise au point permettent de comprendre plus facilement ce qui s'est produit quand une erreur a lieu. Ils sont également très utiles lorsqu'on rapporte une anomalie.
On peut exécuter le script chkconf_kernel.sh inclus dans le paquet MIPL pour vérifier que toutes les options adéquates sont positionnées.
On procède ensuite à la compilation et à l'installation du noyau.
Suggestion : afin de distinguer plus facilement les noyaux qu'on recompile soi-même, il suffit par exemple de positionner la variable « EXTRAVERSION » dans le fichier /usr/src/linux/Makefile à la valeur « -MIPv6-1 ».
Le guide pratique du noyau Linux fournit des instructions détaillées pour la modification, la compilation et l'installation d'un nouveau noyau.
L'utilitaire mipdiag, les fichiers de configuration et les scripts d'initialisation doivent être installés pour que le module fonctionne correctement :
# cd /usr/local/src/mipv6-1.0-v2.4.22 # ./configure # make && make install
Le module MIPv6 nécessite également un nouveau fichier spécial. La commande suivante en crée un :
# mknod /dev/mipv6_dev c 0xf9 0
Red Hat :
Les fichiers de commandes de démarrage se trouvent dans le répertoire /etc/init.d/ et sont référencés au moyen de liens symboliques suivant le niveau de fonctionnement (/etc/rcX.d/). On active MIPv6 au démarrage avec la commande :
# chkconfig --add mobile-ip6
On le désactive de façon similaire :
# chkconfig --del mobile-ip6
Debian :
Si on a la chance d'opérer avec une distribution Debian, la commande suivante positionnera tous les liens nécessaires :
# update-rc.d -n mobile-ip6 start 75 3 4 5 . stop 05 1 2 6 .
Slackware :
Les scripts de démarrage et de changement de niveau de fonctionnement se trouvent tous dans le répertoire /etc/rc.d. « configure » n'examine pas « /etc/rc.d ». On ajoute donc INIT_SLACK="/etc/rc.d" et INIT_SLACK à INITDIRS dans le script « configure » (il suffit de rechercher INITDIR dans ce fichier). La commande suivante permet alors d'achever le travail :
# echo '/etc/rc.d/mobile-ip6 start' >> /etc/rc.d/rc.local
Si le fichier Makefile n'est pas modifié, le script mobile-ip6 est installé à la racine et il faut alors le déplacer manuellement dans le répertoire /etc/rc.d.