Page suivantePage pr�c�denteTable des mati�res

3. Configuration des clients

� l'heure actuelle, il existe trois clients DHCP diff�rents pour Linux : dhcpcd, pump et dhclient. Ce mini-HOWTO traite principalement de dhcpcd.

3.1 T�l�chargement du d�mon client (dhcpcd)

En fonction de votre distribution, vous pouvez avoir besoin de t�l�charger le d�mon client DHCP. Si vous voulez le compiler � partir des sources, vous avez besoin du paquetage dhcpcd, dont la derni�re version est la 1.3.18. Il est maintenu par Sergei Viznyuk sergei@phystech.com et est aujourd'hui livr� sous forme de binaire avec la plupart des distributions.

Les sources de dhcpcd peuvent �tre t�l�charg�es depuis :

Ensuite, suivez les instructions ci-dessous. Elles devraient rester identiques.

3.2 Slackware

Vous pouvez t�l�charger la derni�re version de dhcpcd depuis n'importe quel miroir de Metalab ou depuis l'un des sites suivants :

T�l�chargez la derni�re version de dhcpcd.tar.gz.

Cela va cr�er un r�pertoire /etc/dhcpc o� dhcpcd va stocker des informations pour DHCP, et le fichier dhcpcd va �tre copi� dans /usr/sbin.

Pour que le syst�me initialise DHCP au d�marrage, tapez :

cd /etc/rc.d
mv rc.inet1 rc.inet1.OLD

Cela va renommer l'ancien script d'initalisation du r�seau en rc.inet1.OLD. Maintenant, il vous faut cr�er un nouveau script rc.inet1. Voici tout ce dont vous avez besoin :


#!/bin/sh
#
# rc.inet1      This shell script boots up the base INET system.
HOSTNAME=`cat /etc/HOSTNAME` #This is probably not necessary but I
 #will leave it in anyways
# Attach the loopback device.
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
# IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the
# eth0 interface. If you're only using loopback or SLIP, don't include the
# rest of the lines in this file.
/usr/sbin/dhcpcd

Sauvegardez le et red�marrez votre ordinateur.

Quand vous aurez termin�, allez � la section La touche finale.

3.3 Red Hat 6.x et Mandrake 6.x

La configuration de dhcpcd avec une Red Hat 6.0 ou plus r�cente est vraiment facile. Vous devez simplement lancer le panneau de contr�le en tapant :

control-panel
puis

Notez que dans la Red Hat 6.x, le client DHCP par d�faut est un programme nomm� pump qui remplace le dhcpcd mentionn� ci-dessus. Un paquetage dhcpcd se trouve sur le CD-ROM, donc si vous ne vous en tirez pas avec pump, vous pouvez toujours essayer avec dhcpcd. Une fois dhcpcd install� (par exemple par rpm -i dhcpcd-1.3.17pl2-1.i386.rpm), vous allez devoir faire quelques modification (voir ici).

Quelques notes suppl�mentaires d'Alexander Stevenson alexander.stevenson@home.com :

Je n'ai pas r�ussi � utiliser DHCPcd. Finalement, c'est pump, inclus dans la Mandrake 6.0 (et je suppose donc dans la Red Hat) qui a bien voulu fonctionner. J'ai utilis� la commande suivante :

pump -i eth0 -h h�te
Le nom d'h�te est sans importance, mais sans lui, le serveur ne r�pond pas.

J'ai alors chang� la ligne correspondante de mon script /sbin/ifup pour y int�grer cette modification; la version par d�faut n'inclut pas l'option -h et ne fonctionne donc pas chez moi.

En r�sum�, si vous utilisez Linuxconf, et si �a ne fonctionne pas apr�s avoir choisi l'option "DHCP" pour votre interface, essayez d'ajouter "-h h�te" � l'invocation de pump dans le script /sbin/ifup. Mon script ressemble maintenant � �a :


...
if [ -n "$PUMP" ]; then
 echo -n "Determining IP information for $DEVICE..."
 if /sbin/pump -i $DEVICE -h hostname; then
 echo " done."
 else
 echo " failed."
 exit 1
 fi
else ...

Une fa�on plus �l�gante d'ajouter le nom d'h�te est indiqu�e par Aad van der Klaauw :

Je configure en ce moment une passerelle sur mon r�seau personnel. J'ai eu besoin d'indiquer l'adresse MAC et d'utiliser l'option "-h h�te". J'ai d�cid� de ne pas changer le script, mais plut�t d'utiliser le fichier de configuration. Dans /etc/sysconfig/network-scripts/ifcfg-eth0 j'ai rajout� ce qui suit :


DEVICE="eth0"
MACADDR="00:11:22:33:44:55"
DHCP_HOSTNAME="trigger_for_terayon"

�a survit aux mises � jour, et � mon avis c'est plus propre.

C'est tout. Il suffit maintenant de red�marrer votre machine ou de taper

/sbin/ifup eth0
sur la ligne de commande.

3.4 Red Hat 5.x

La configuration de dhcpcd avec une Red Hat 5.0 ou plus r�cente est vraiment facile. Vous devez simplement lancer le panneau de contr�le en tapant :

control-panel
puis

Quand vous aurez termin�, allez � la section La touche finale.

3.5 Red Hat 4.x et Caldera OpenLinux 1.1/1.2

dhcpcd est inclus dans la distribution standard de Red Hat sous la forme d'un paquetage RPM. Vous pouvez le trouver dans le r�pertoire RPMS de votre CD-ROM ou le t�l�charger depuis ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm et l'installer avec :

rpm -i dhcpcd-0.6-2.i386.rpm

Vous pouvez �galement compiler votre propre version en suivant les instructions donn�es pour la Slackvare ( voir ici).

Ces informations m'ont �t� communiqu�es par nothing@cc.gatech.edu :


J'ai enlev� mon IP fixe et mon nom d'h�te de /etc/resolv.conf. Par contre, j'y
ai laiss� la ligne "search ..." et les lignes de mes deux serveurs de noms
(pour je ne sais quelle raison mon dhcpcd ne cr�e jamais de /etc/dhcpc/resolv.conf,
et je dois utiliser un /etc/resolv.conf statique).
Dans /etc/sysconfig/network, j'ai enlev� les entr�es HOSTNAME et GATEWAY. J'ai
laiss� les autres entr�es (NETWORKING, DOMAINNAME, GATEWAYDEV) telles quelles.
Dans /etc/sysconfig/network-scripts/ifcfg-eth0, j'ai enlev� les entr�es
IPADDR, NETMASK, NETWORK et BROADCAST. Je n'ai pas touch� � DEVICE et
ONBOOT. J'ai chang� la ligne BOOTPROTO en BOOTPROTO=dhcp.
Sauvegardez le fichier et red�marrez votre machine.

Quand vous aurez termin�, allez � la section La touche finale.

3.6 Debian

Il existe un paquet Debian de DHCPcd (assurez-vous que son nom commence bien par dhcpcd) � l'adresse ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/.

Vous pouvez aussi suivre les instructions d'installation sur Slackware. Pour d�compacter le paquetage deb, tapez :

dpkg -i /l/endroit/ou/vous/mettez/vos/paquetages/deb/dhcpcd*deb
Il semble que vous n'ayez rien � configurer. D'apr�s Heiko Schlittermann :

Comme les autres paquets Debian, le paquet dhcpcd installe son script d'initialisation en /etc/init.d/<nom_du_paquetage>, ici /etc/init.d/dhcpcd, et cr�e des liens vers ce script dans les r�pertoires /etc/rc?.d/.

Le contenu des r�pertoires /etc/rc?.d/ est ensuite �x�cut� automatiquement � l'initialisation du syst�me.

Si vous ne red�marrez pas votre syst�me apr�s l'installation, vous devriez d�marrer le d�mon manuellement :

/etc/init.d/dhcpcd start

Quand vous aurez termin�, allez � la section La touche finale.

3.7 LinuxPPC et MkLinux

La section suivante a �t� �crite par R. Shapiro.

Depuis la version "1999" (R5), LinuxPPC est pratiquement compatible avec la Red Hat 6, � l'exception du probl�me d�crit ci-dessous. En r�gle g�n�rale, le mode d'emploi est le m�me que pour la version actuelle des Red Hat 6.x et Mandrake 6.x

Le probl�me est que par d�faut, la Red Hat 6.x utilise le client DHCP pump, qui ne fonctionne pas correctement sous LinuxPPC. Pour contourner ce probl�me, vous devez installer la derni�re version du dhcpcd de Sergei Viznyuk et �diter /sbin/ifup pour lui faire utiliser dhcpcd � la place de pump. Remplacez


if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
 PUMP=true
 fi
 if [ -n "$PUMP" ]; then

par
if [  "$BOOTPROTO" = bootp ]; then
 echo " done."
 else
 echo " failed."
 exit 1
 fi
 elif [ "$BOOTPROTO" = dhcp ]; then
 echo -n "Determining IP information for $DEVICE..."
 if /sbin/dhcpcd -d $DEVICE ; then
 if [ -f /etc/dhcpc/dhcpcd-${DEVICE}.exe ]; then
 /etc/dhcpc/dhcpcd-${DEVICE}.exe
 fi

et faites le changement correspondant dans /sbin/ifdown : remplacez


if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
....
fi

par
if [ "$BOOTPROTO" = bootp ]; then
fi
if [ "$BOOTPROTO" = dhcp ]; then
 if [ -f /var/run/dhcpcd-${DEVICE}.pid ]; then
 kill `cat /var/run/dhcpcd-${DEVICE}.pid`
 rm -f /var/run/dhcpcd-${DEVICE}.pid
 fi
fi

Une version RPM pour PPC de dhcpcd se trouve sur le CD de LinuxPPC 1999; une version l�g�rement plus r�cente se trouve dans le r�pertoire contrib sur ftp://ftp.linuxppc.org/. Les sources, qui compilent telles quelles sur LinuxPPC 1999, sont disponibles � ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz.

3.8 La touche finale

Apr�s la r�initialisation de votre machine, votre interface r�seau devrait �tre configur�e. Tapez :

ifconfig
Vus devriez obtenir quelque chose comme �a :
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

Si vous avez un nombre � l'air normal dans "inet addr", c'est bon. Si vous voyez 0.0.0.0, ne d�sesp�rez pas, c'est un r�sultat temporaire, en attendant que dhcpcd obtienne l'adresse IP. Si au bout de quelques minutes, vous voyez toujours 0.0.0.0, consultez la sections probl�mes. dhcpcd est un d�mon qui continuera � tourner tant que votre machine restera allum�e. Toutes les trois heures, il contactera le serveur DHCP pour renouveler l'attribution de l'adresse IP. Il consignera tous les messages dans le journal du syst�me (/var/adm/syslog/ sur Slackware, /var/log/syslog/ sur Red Hat ou OpenLinux).

Une derni�re chose : vous devez pr�ciser vos serveurs de noms. Il existe deux fa�ons de le faire. Vous pouvez demander les adresses de ses serveurs de noms � votre fournisseur d'acc�s et les mettre dans /etc/resolv.conf. Vous pouvez aussi laisser dhcpcd obtenir la liste des serveurs de noms depuis le serveur DHCP et le laisser cr�er un resolv.conf adapt� dans /etc/dhcpc/. Pour ma part, j'ai d�cid� de laisser faire dhcpcd. Pour cela :

Si �a ne fonctionne pas, essayez ceci (r�paration sugg�r�e par nothing@cc.gatech.edu, avec quelques modifications de Henrik Stoerner) :

J'ai du proc�der � ce changement car mon dhcpcd ne cr�e pas de fichier /etc/dhcpc/resolv.conf. Dans /etc/sysconfig/network-scripts/ifup, j'ai effectu� le changement suivant, qui n'est qu'une malheureuse bidouille, mais qui marche chez moi : j'ai chang�


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

en :
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

Remarquez le point d'exclamation dans if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];.

Maintenant, admirez le r�sultat! :-)

3.9 Notes diverses

Ce qui suit n'est pas � proprement parler n�cessaire, mais peut �tre utile � certaines personnes.

Si vous n'avez besoin de votre connexion qu'occasionnellement, vous pouvez d�marrer dhcpcd depuis la ligne de commandes (� condition d'�tre root) en tapant :

/usr/sbin/dhcpcd
Quand vous voulez couper la connexion, tapez :
/usr/sbin/dhcpcd -k

3.10 Probl�mes

Si vous avez bien suivi toutes les �tapes ci-dessus et si malgr� tout vous ne pouvez pas acc�der au r�seau, plusieurs explications sont possibles.

Votre carte r�seau est mal configur�e.

Pendant l'initialisation du syst�me, Linux va rechercher votre carte r�seau et devrait afficher quelque chose de ce genre :


eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 20 af ee 11 11, IRQ 10.
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Si aucun message de ce genre n'apparait, votre carte ethernet n'est vraisemblablement pas reconnue par Linux. Si votre carte est une carte g�n�rique (un clone de NE2000), vous devriez avoir une disquette avec des utilitaires DOS que vous pouvez utiliser pour la configurer. Essayez plusieurs IRQ jusqu'� ce que Linux reconnaisse votre carte. Les IRQ 9, 10 ou 12 conviennent g�n�ralement.

Votre serveur DHCP ne supporte que la RFC 1541 ou fonctionne sous Windows NT.

Essayez de lancer dhcpcd par

dhcpcd -r

Utilisez ifconfig pour v�rifier que votre interface r�seau est configur�e (attendez quelques secondes que la configuration soit termin�e; au d�part, vous obtiendrez "inet addr: 0.0.0.0").

Si cela r�soud votre probl�me, ajoutez l'option "-r" � vos scripts d'initialisation, c'est � dire remplacez /sbin/dhcpcd par /sbin/dhcpcd -r.

Par exemple, sous Red Hat, �ditez le script /etc/sysconfig/network-scripts/ifup et changez ce qui suit :


 IFNAME=$[ {DEVICE} \
 "/sbin/dhcpcd -r -c /etc/"- etc etc.

Au d�marrage, je vois le message d'erreur "Using DHCP for eth0 ... failed" mais mon syst�me fonctionne correctement.

Vous utilisez probablement une Red Hat et vous n'avez pas suivi scrupuleusement les instructions. Il vous manque un point d'exclamation dans un des scripts. Voyez ici pour corriger �a.

Mon r�seau fonctionne pendant quelques minutes avant d'arr�ter de r�pondre.

Il semble que gated (le d�mon de passerelle) puisse embrouiller le routage sur des machines Linux, avec le r�sultat mentionn� ci-dessus. Regardez s'il tourne :

ps -auxww | grep gate
S'il tourne effectivement, d�sinstallez-le avec le gestionnaire RPM de Red Hat ou enlevez son entr�e dans /etc/rc.d/.

Ma carte ethernet est reconnue au d�marrage, mais j'ai toujours le message "NO DHCPOFFER" dans le journal du syst�me. Il se trouve que j'ai une carte ethernet PCMCIA.

Assurez-vous que le port 10baseT (la "prise de t�l�phone") de votre carte est activ�. Le meilleur moyen de le v�rifier est de regarder pour quel type de connecteur votre carte est configur�e � l'allumage, par exemple :


eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 20 af ee 11 11, IRQ 10.
 ^^^^^^^^^^^^
3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov

Des utilisateurs de micro-ordinateurs portables m'ont signal� qu'ils avaient ce genre de probl�mes � cause des utilitaires PCMCIA (plus sp�cifiquement ifport), qui configurent la carte pour utiliser le port 10base2 (ethernet fin). Vous devez vous assurer que vous utilisez le port 10baseT pour votre connexion. Si ce n'est pas le cas, reconfigurez votre carte et red�marrez la machine.

Mon client DHCP envoie des requ�tes, mais personne ne r�pond.

Cette partie est due � Peter Amstutz.

Sur certains syst�mes, vous devez inclure un nom d'h�te dans la requ�te DHCP. Avec dhcpcd, vous pouvez faire �a comme �a :

dhcpcd -h hotetoto
Le nom d'h�te requis correspond probablement � votre nom d'utilisateur sur le r�seau.

J'ai bien suivi toutes les �tapes et ma machine ne se connecte toujours pas.

En g�n�ral, un modem cable m�morise l'adresse ethernet de votre carte r�seau. Donc si vous connectez une nouvelle machine ou changez de carte r�seau, vous allez devoir "apprendre" � votre modem � reconnaitre la nouvelle machine ou la nouvelle carte. En g�n�ral, il suffit d'�teindre le modem et de le rallumer avec l'ordinateur en marche. Sinon, vous devrez appeler le support technique pour leur signaler que vous avez chang� de carte.

Il se peut aussi que vous ayez des r�gles de filtrage (install�es par ipfwadm) qui interdisent le trafic sur les ports 67 et 68 utilis�s par DHCP pour communiquer les informations de configuration. V�rifiez vos filtres avec attention.

Je suis abonn� � MediaOne Express et je ne peux toujours pas me connecter.

Il semble que MediaOne ait ajout� quelques extensions � DHCP qui ne devraient pas y �tre. C'est cens� ne plus �tre un probl�me, mais si malgr� tout vous rencontrez des probl�mes, regardez de ce c�t�. Si vous avez la (mal)chance d'avoir Windows NT sur votre machine, v�rifiez dans l'observateur d�v�nements, vous devriez y trouver un avertissement de ce style :


DHCP received an unknown option 067 of length 005. The raw option data is
given  below.
0000: 62 61 73 69 63            basic

S'il s'agit bien de ce probl�me, allez voir ftp://vanbuer.ddns.org/pub/ et t�l�chargez ou bien un binaire, ou bien les sources de la version corrig�e.

3.11 Un autre client DHCP (le dhclient de l'ISC)

Si vous n'arrivez pas � configurer votre connection au moyen de dhcpcd, vous voudrez peut-�tre essayer le dhclient de l'ISC. dhclient fait partie de la distribution DHCP de l'ISC, qui contient un serveur et un client. Les instructions sur la fa�on de vous procurer et de compiler la distribution DHCP se trouvent dans la section Un serveur DHCP pour UNIX. Quand vous aurez termin�, revenez � la section pr�sente pour la configuration du client.

Les informations qui suivent m'ont �t� fournies par Ted Lemon mellon@isc.org, un des auteurs de dhclient.

Avec la version actuelle du client DHCP, vous n'avez pas r�ellement besoin d'un fichier dhclient.conf. Il vous suffit d'invoquer dhclient :

/sbin/dhclient
Cette commande va configurer toutes les interfaces pouvant faire de la diffusion (NdT : broadcast). Si cela ne fonctionne pas, ou si vous ne voulez configurer qu'une seule interface, cr�ez un fichier /etc/dhclient.conf � partir de l'exemple de configuration suivant :
interface "eth0" {
 send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
 send dhcp-lease-time 86400;
}

Ici, nous supposons que votre interface ethernet est eth0 ; sinon, faites la modification ad�quate. Remplacez �galement xx:xx:xx:xx:xx:xx par votre adresse ethernet. Ce fichier dhclient.conf fait ressembler votre client DHCP � un client Windows 95.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:34