<HTML> <HEAD> <TITLE>Méthode</TITLE> </HEAD> <BODY> <H1>6. <A NAME="s6"></A>Méthode</H1> <P> <A HREF="DHCPcd.html#toc6">Contenu de cette section</A></P> <P></P> <P></P> <H2>6.1 <A NAME="ss6.1"></A> Première étape </H2> <P></P> <P>Quel que soit la distribution que vous utilisez, vous aurez besoin de télécharger le démon client pour <B>Linux</B>. Le paquetage dont vous avez besoin est appelé <CODE>dhcpcd</CODE> et sa version actuelle est 0.70. Le fichier de description du paquetage écrit: </P> <P> <PRE> Title: dhcpcd Version: 0.70 Entered-date: 05MAY97 Description: dhcpcd is an RFC2131 compliant DHCP client daemon. It gets an IP address and other information from a corresponding DHCP server, configures the network interface automatically, and tries to renew the lease time according to RFC2131. It works in the RFC1541 compliant mode when the '-r' option is specified. So far it is found that dhcpcd 0.70 works fine with the following DHCP servers: 1. ISC's dhcpcd-BETA-5.15 2. DHCP server on Windows NT server 3.51 3. DHCP server version 1.3b by WIDE project. 4. DHCP server in the SolarNet PC-Admin 1.5 package 5. DHCP server used in Time Warner Cable's Internet Access Service 6. DHCP server used in Bell Atlantic ADSL See the "Changes" file if you want to know the difference from the previous version. Keywords: DHCP, client, Linux Author: yoichi@fore.com (Yoichi Hariguchi) Maintained-by: yoichi@fore.com (Yoichi Hariguchi) Primary-site: ftp.kobe-u.ac.jp:/pub/PC-UNIX/Linux/network/dhcp 33kB dhcpcd-0.70.tar.gz Alternate-site: sunsite.unc.edu:/pub/Linux/system/network/daemons 33kB dhcpcd-0.70.tar.gz Original-site: Platforms: Linux 1.2.xx, 1.3.xx, 2.0.x Copying-policy: GPL </PRE> </P> <P></P> <H3>Slackware </H3> <P></P> <P>Vous pouvez télécharger la dernière copie de DHCPcd depuis n'importe quel mirroir de <SF>sunsite</SF> ou : <CODE>ftp://ftp.cdrom.com/pub/linux/sunsite/system/network/daemons/</CODE> <CODE>ftp://ftp.sunsite.unc.edu/pub/Linux/system/network/daemons/</CODE></P> <P><CODE>ftp://ftp.lip6.fr/pub/linux/sunsite/system/daemons/</CODE> (site de référence en France)</P> <P>Téléchargez la dernière version de <CODE>dhcpcd.tar.gz</CODE></P> <P>Décompressez-le: <CODE>tar -zxvf dhcpcd-0.70.tar.gz</CODE>,</P> <P>déplacez-vous dans le répertoire: <CODE>cd dhcpcd-0.70</CODE>,</P> <P>tapez: <CODE>make</CODE>. </P> <P>Vous aurez besoin d'être <SF>root</SF> pour l'installer en tapant <CODE>make install</CODE>. </P> <P>Cela créera le répertoire <CODE>/etc/dhcpcd</CODE> où DHCPcd stockera les paramètres et <CODE>dhcpcd</CODE> sera copié dans le répertoire <CODE>/usr/sbin/</CODE>. Vous pouvez passer à la deuxième étape.</P> <P></P> <H3>RedHat </H3> <P></P> <P>DHCPcd est inclu dans la distribution standard de RedHat sous forme RPM et vous pouvez le trouver dans le répertoire <CODE>RPMS</CODE> du CD-ROM contenant la distribution ou bien le télécharger depuis: <CODE>ftp://tsx-11.edu/pub/linux/distributions/redhat/redhat-4.2/i386/RedHat/RPMS/</CODE> le fichier <CODE>dhcpcd-0.6-2.i386.rpm</CODE></P> <P>et installez-le avec </P> <P><CODE>rpm -i dhcpcd-0.6-2.i386.rpm</CODE></P> <P>Vous pouvez aussi compiler votre propre version en suivant les étapes de la Slackware. Lorsque vous avez fini, passez à l'étape 2.</P> <P></P> <H3>Debian </H3> <P>Il y a un package pour DHCPcd à: <CODE>ftp://ftp.debian.org/debian/stable/binary/net/</CODE>. Vous pouvez aussi suivre les étapes de la Slackware.</P> <P>Pour décompresser les paquetage tapez: <CODE>dpkg -i /ou/se/trouve/votre/paquetage/dhcpcd*deb</CODE>.</P> <P>Après allez à l'étape 2.</P> <P></P> <H2>6.2 <A NAME="ss6.2"></A> Deuxième étape </H2> <P>L'(Les) instruction(s) suivante(s) dépend(ent) de vos besoins.</P> <P> <OL> <LI>Si vous avez besoin de ressources réseau occasionnellement, vous pouvez lancer <CODE>dhcpcd</CODE> depuis la ligne de commande (vous avez besoin d'être <CODE>root</CODE> pour l'exécuter) en tapant: <CODE>/usr/sbin/dhcpcd</CODE>. Lorsque vous avez besoin d'arréter le service, tapez: <CODE>/usr/sbin/dhcpcd -k</CODE>. Il ne vous manque, maintenant, que la configuration du serveur de noms (<CODE>/etc/resolv.conf</CODE>). Pour connaître les instructions afin de créer le fichier <CODE>/etc/resolv.conf</CODE> allez à l'étape 3.</LI> <LI>Si vous souhaitez (avez besoin) d'une connexion permanente, ainsi que l'exécution du démon au démarrage suivez les instructions qui suivent. </LI> </OL> </P> <H3>Slackware. </H3> <P>Pour que le système utilise DHCP au démarrage tapez: <CODE>cd /etc/rc.d</CODE>, <CODE>mv rc.inet1 rc.inet1.old</CODE>.</P> <P>Cela renommera l'ancienne initilisation du réseau en <CODE>rc.inet1.old</CODE>. Vous avez maintenant besoin de créer le nouveau fichier <CODE>rc.inet1</CODE>. Il devrait ressembler à: <PRE> #!/bin/sh # # rc.inet1 This shell script boots up the base INET system. # # Version: @(#)/etc/rc.d/rc.inet1 1.01 05/27/93 # HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I #will leave it in anyways # Attache le peripherique loopback. /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # SI VOUS AVEZ UNE CONNEXION ETHERNET, utilisez les lignes suivantes # pour configurer votre interface eth0. Si vous utilisez uniquement # le loopback ou bien SLIP, il ne faut pas inclure les lignes # restantes. /usr/sbin/dhcpcd </PRE> </P> <P>Nommez le fichier précédant <CODE>rc.inet1</CODE> et sauvegardez-le. Rebootez votre machine et allez à l'étape 3.</P> <P></P> <H3>RedHat. </H3> <P>Cette information a été fournie par <SF>nothing</SF> (<SF>nothing@cc.gatech.edu</SF>) <EM>``J'ai enlevé mon adresse ip statique ainsi que le nom de ma machine dans le fichier <CODE>/etc/resolv.conf</CODE>. Toutefois, j'ai laissé la ligne search ainsi que mes deux lignes nameserver (pour une raison inconnue, mon <CODE>dhcpcd</CODE> n'a jamais créé de <CODE>/etc/dhcpcd/resolv.conf</CODE>, je dois donc utiliser un <CODE>/etc/resolv.comf</CODE> statique). </EM></P> <P><EM>Dans <CODE>/etc/sysconfig/network</CODE> j'ai supprimé les valeurs de HOSTNAME ainsi que de GATEWAY. J'ai laissé les autres entrées comme telles (NETWORKING, DOMAINNAME, GATEWAYDEV). </EM></P> <P><EM>Dans <CODE>/etc/sysconfig/network-scripts/ifcfg-eth0</CODE> j'ai supprimé les entrées IPADDR, NETMASK, NETWORK, et BROADCAST. J'ai laissé les entrées DEVICE et ONBOOT telles quelles. J'ai modifié la valeur de BOOTPROTO à BOOTPROTO=dhcp.''</EM> </P> <P>Savegardez le fichier et rebootez la machine.</P> <H3>Debian. </H3> <P>Il semblerait qu'il n'y ait pas besoin de configuration pour DHCPcd car: D'après <SF>Heik Schlittermann</SF> <EM>``Le paquetage dhcpcd installe son script de démarrage comme n'importe quel paquetage dans <CODE>/etc/init.d/</CODE>, ici <CODE>/etc/init.d/dhcpcd</CODE>, et le lie à différents répertoire <CODE>/etc/rc?.d</CODE>. Le contenu des différents <CODE>/etc/rc?.d/</CODE> sont alors exécuté au démarrage. Si vous ne rebootez pas votre machine après l'installation, vous pouvez quand même démarrer le démon manuellement: <CODE>/etc/init.d/dhcpcd start</CODE>'' </EM> Allez à. l'étape 3.</P> <P></P> <H2>6.3 <A NAME="ss6.3"></A> Troisième étape </H2> <P>Cette étape devrait être la même pour toutes les distributions. </P> <P>Après que votre machine ait rebooté, votre interface réseau devrait être configurée. Tapez <CODE>ifconfig</CODE> : et vous devriez avoir quelque chose du genre:</P> <P> <PRE> lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:302 errors:0 dropped:0 overruns:0 frame:0 TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0 eth0 Link encap:Ethernet HWaddr 00:20:AF:EE:05:45 inet addr:24.128.53.102 Bcast:24.128.53.255 Mask:255.255.254.0 ^^^^^^^^^^^^^^^^^^^^^^^ UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24783 errors:1 dropped:1 overruns:0 frame:1 TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96 Interrupt:10 Base address:0x300 </PRE> </P> <P>Si vous avez un numéro normal après <CODE>inet addr</CODE>, c'est bon. DHCPcd est un démon et continuera de s'exécuter tant que votre machine restera allumée. Toutes les trois heures il contactera le serveur DHCP et essaiera de renouveler le bail de l'adresse IP. Il placera tous les messages journaux dans le "journal système" (pour la Slackware <CODE>/var/adm/syslog</CODE>) si vous avez besoin de le consulter.</P> <P>Une dernière chose. Vous avez besoin de spécifier vos serveurs de noms. Il y a deux manières de le faire, vous pouvez demander à votre fournisseur d'accès de vos donner les adresses de vos serveurs de noms et de les placer dans le fichier <CODE>/etc/resolv.conf</CODE> où bien, DHCPcd obtient la liste depuis le serveur DHCP et construira un fichier <CODE>/etc/dhcpcd/resolv.conf</CODE>. J'ai décidé d'utiliser les <CODE>resolv.conf</CODE> de DHCPcd en faisant les choses suivantes: <UL> <LI>Sauvegarder votre ancien <CODE>resolv.conf</CODE>: <CODE>mv /etc/resolv.conf /etc/resolv.conf.old</CODE>,</LI> <LI>Si le répertoire <CODE>/etc/dhcpcd/</CODE> n'existe pas, créez le: <CODE>mkdir /etc/dhcpcd/</CODE>,</LI> <LI>Faire un lien entre <CODE>/etc/dhcpcd/resolv.conf</CODE> et <CODE>/etc/resolv.conf</CODE>: <CODE>ln -s /etc/dhcpcd/resolv.conf /etc/resolv.conf</CODE></LI> </UL> </P> <P>Si cela ne marche pas, essayez cela (proposé par <SF>nothing@cc.gatech.edu</SF> avec une retouche de <SF>Henrik Stoerner</SF>)</P> <P><EM>Cette dernière étape doit être exécutée seulement si <CODE>dhcpcd</CODE> ne crée pas le <CODE>/etc/dhcpcd/resolv.conf</CODE>. Dans le fichier <CODE>/etc/sysconfig/network-scripts/ifup</CODE> j'ai effectué les modifications suivantes (qui sont vraiment de petites bidouilles, mais qui marchent pour moi).</EM></P> <P> <PRE> ################################# elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Using DHCP for ${DEVICE}... " /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE} echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^ echo "failed." exit 1 ################################# </PRE> <EM> Je l'ai changé en: </EM> <PRE> ################################# elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then echo -n "Using DHCP for ${DEVICE}... " /sbin/dhcpcd echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then ^^^^^^ echo "failed." exit 1 ################################# </PRE> </P> <P><EM> Notez le ! (point d'interrogation) dans le <CODE>if [ ! -f /var/run/dhcp-wait-$(DEVICE).pid ] ;</CODE> Maintenant asseyez vous et contemplez <CODE><:ˆ}</CODE> </EM></P> <P></P> <HR> <P> Chapitre <A HREF="DHCPcd-7.html">suivant</A>, Chapitre <A HREF="DHCPcd-5.html">Précédent</A> <P> Table des matières de <A HREF="DHCPcd.html#toc6">ce chapitre</A>, <A HREF="DHCPcd.html#toc">Table des matières</A> générale</P> <P> <A HREF="DHCPcd.html">Début</A> du document, <A HREF="#0"> Début de ce chapitre</A></P> </BODY> </HTML>