<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>3. La mobilité IPv6 avec Linux</title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.66.1"> <link rel="start" href="index.html" title="Guide pratique de la mobilité IPv6 avec Linux"> <link rel="up" href="index.html" title="Guide pratique de la mobilité IPv6 avec Linux"> <link rel="prev" href="ar01s02.html" title="2. IPv6"> <link rel="next" href="ar01s04.html" title="4. Environnement de test"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">3. La mobilité IPv6 avec Linux</th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> </table> <hr> </div> <div class="sect1" lang="fr"> <div class="titlepage"><div><div><h2 class="title" style="clear: both"> <a name="MIPv6"></a>3. La mobilité IPv6 avec Linux</h2></div></div></div> <p> 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 (<a href="http://www.cs-ipv6.lancs.ac.uk/MobileIP/" target="_top">http://www.cs-ipv6.lancs.ac.uk/MobileIP/</a>). 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. </p> <p> 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 <a href="http://www.mobile-ipv6.org/" target="_top">http://www.mobile-ipv6.org/</a> contient des documents, le logiciel et une archive des discussions par courrier électronique. </p> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="patch"></a>3.1. Mise à niveau du noyau</h3></div></div></div> <p> 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. </p> <p> <span class="emphasis"><em> 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é. </em></span> </p> <p> </p> <div class="orderedlist"><ol type="1"> <li> <p> On commence par télécharger le dernier code source de MIPv6 pour Linux à l'adresse <a href="http://www.mobile-ipv6.org/" target="_top">http://www.mobile-ipv6.org/</a>. La dernière version à jour est <span class="emphasis"><em>mipv6-1.0-v2.4.22</em></span>. Les quatre derniers chiffres indiquent le noyau Linux auquel le greffon doit être appliqué. </p> <pre class="screen"> # 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 </pre> </li> <li> <p> On télécharge et on décompresse ensuite le noyau Linux correspondant depuis le site <a href="ftp://ftp.kernel.org" target="_top">ftp.kernel.org</a> : </p> <pre class="screen"> # 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 </pre> </li> <li> <p>Application du greffon MIPv6 :</p> <pre class="screen"> # patch -p1 --dry-run < /usr/local/src/mipv6-1.0-v2.4.22/mipv6-1.0-v2.4.22.patch </pre> <p> L'option --dry-run vérifie que le greffon est applicable. Si un fragment est rejeté, il vaut mieux ne <span class="emphasis"><em>pas</em></span> continuer. Si tout se déroule correctement, on peut effectivement appliquer les modifications : </p> <pre class="screen"> # patch -p1 < /usr/local/src/mipv6-1.0-v2.4.22/mipv6-1.0-v2.4.22.patch </pre> </li> <li> <p> L'arborescence du noyau Linux est maintenant prête à être configurée. On exécute la commande <span><b class="command">make *config</b></span> de son choix. Les options de configuration de MIPv6 se trouvent sous le menu « <span class="quote">Networking Options</span> ». Les options ci-dessous devraient apparaître dans le fichier <span class="emphasis"><em>« <span class="quote">.config</span> »</em></span> : </p> <pre class="screen"> 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 </pre> <p> Comme le développement de MIPL n'est pas encore achevé, il peut être utile d'activer : </p> <pre class="screen"> CONFIG_IPV6_MOBILITY_DEBUG=y </pre> <p> 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. </p> <p> On peut exécuter le script <b class="userinput"><tt>chkconf_kernel.sh</tt></b> inclus dans le paquet MIPL pour vérifier que toutes les options adéquates sont positionnées. </p> </li> <li> <p> On procède ensuite à la compilation et à l'installation du noyau. </p> <p> Suggestion : afin de distinguer plus facilement les noyaux qu'on recompile soi-même, il suffit par exemple de positionner la variable « <span class="quote">EXTRAVERSION</span> » dans le fichier <b class="userinput"><tt>/usr/src/linux/Makefile</tt></b> à la valeur « <span class="quote">-MIPv6-1</span> ». </p> </li> </ol></div> <p> </p> <p> Le <a href="http://www.traduc.org/docs/howto/lecture/Kernel-HOWTO.html" target="_top">guide pratique du noyau Linux</a> fournit des instructions détaillées pour la modification, la compilation et l'installation d'un nouveau noyau. </p> </div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="userspace"></a>3.2. Programmes utilitaires</h3></div></div></div> <p> L'utilitaire <b class="userinput"><tt>mipdiag</tt></b>, les fichiers de configuration et les scripts d'initialisation doivent être installés pour que le module fonctionne correctement : </p> <pre class="screen"> # cd /usr/local/src/mipv6-1.0-v2.4.22 # ./configure # make && make install </pre> </div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="dev"></a>3.3. Fichier spécial pour MIPv6</h3></div></div></div> <p> Le module MIPv6 nécessite également un nouveau fichier spécial. La commande suivante en crée un : </p> <pre class="screen"> # mknod /dev/mipv6_dev c 0xf9 0 </pre> </div> <div class="sect2" lang="fr"> <div class="titlepage"><div><div><h3 class="title"> <a name="startup"></a>3.4. Démarrage automatique</h3></div></div></div> <div class="orderedlist"><ol type="1"> <li> <p><span class="emphasis"><em>Red Hat :</em></span></p> <p> Les fichiers de commandes de démarrage se trouvent dans le répertoire <tt class="filename">/etc/init.d/</tt> et sont référencés au moyen de liens symboliques suivant le niveau de fonctionnement (<tt class="filename">/etc/rcX.d/</tt>). On active MIPv6 au démarrage avec la commande : </p> <pre class="screen"> # chkconfig --add mobile-ip6 </pre> <p>On le désactive de façon similaire :</p> <pre class="screen"> # chkconfig --del mobile-ip6 </pre> </li> <li> <p><span class="emphasis"><em>Debian :</em></span></p> <p> Si on a la chance d'opérer avec une distribution Debian, la commande suivante positionnera tous les liens nécessaires : </p> <pre class="screen"> # update-rc.d -n mobile-ip6 start 75 3 4 5 . stop 05 1 2 6 . </pre> </li> <li> <p><span class="emphasis"><em>Slackware :</em></span></p> <p> Les scripts de démarrage et de changement de niveau de fonctionnement se trouvent tous dans le répertoire <tt class="filename">/etc/rc.d</tt>. « <span class="quote">configure</span> » n'examine pas « <span class="quote">/etc/rc.d</span> ». On ajoute donc <span class="emphasis"><em>INIT_SLACK="/etc/rc.d"</em></span> et INIT_SLACK à INITDIRS dans le script « <span class="quote">configure</span> » (il suffit de rechercher INITDIR dans ce fichier). La commande suivante permet alors d'achever le travail : </p> <pre class="screen"> # echo '/etc/rc.d/mobile-ip6 start' >> /etc/rc.d/rc.local </pre> <p> Si le fichier Makefile n'est pas modifié, le script <tt class="filename">mobile-ip6</tt> est installé à la racine et il faut alors le déplacer manuellement dans le répertoire /etc/rc.d. </p> </li> </ol></div> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <td width="20%" align="center"><a accesskey="u" href="index.html">Niveau supérieur</a></td> <td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> <tr> <td width="40%" align="left" valign="top">2. IPv6 </td> <td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td> <td width="40%" align="right" valign="top"> 4. Environnement de test</td> </tr> </table> </div> </body> </html>