
                        mini-HOWTO DHCP (DHCPd/DHCPcd)

Vladimir Vuksan <vuksan@veus.hr>
Traduction franaise par Arnaud Gomes-do-Vale <arnaud@carrosse.frmug.org>

   v4.12, 22 octobre 2000
     _________________________________________________________________

   _Ce document a pour but de rpondre  des questions de base sur la
   configuration de votre machine Linux comme serveur ou client DHCP._
     _________________________________________________________________

1. Introduction

1.1 Avertissements

   Nous dclinons toute responsabilit quant au contenu de ce document.
   L'utilisation des concepts, des exemples ou de tout autre contenu se
   fait entirement  vos propres risques. Dans la mesure o il s'agit
   d'une nouvelle dition de ce document, il peut comporter des erreurs
   ou des imprcisions susceptibles d'endommager votre systme. Bien que
   ce soit trs improbable, je n'en prends pas la responsabilit.

   De plus, gardez  l'esprit que les informations contenues dans ce
   document ne sont _PAS_ officielles. La majeure partie du contenu de ce
   document est constitue de suppositions, qui se trouvent donner
   l'effet prvu pour certaines personnes. Vous utilisez cette
   information  vos risques et prils.

1.2 Nouvelles versions de ce document

   Les nouvelles versions de ce document

     NdT : il s'agit ici de la version originale en anglais

   sont disponibles sur : http://www.oswg.org/oswg-nightly/DHCP.html

   Les versions traduites suivantes sont disponibles :

     * Chinois - http://www.linux.org.tw/CLDP/mini/DHCP.html
     * Japonais - http://www.linux.or.jp/JF/JFdocs/DHCP.html
     * Espagnol -
       ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/CHDP-mini-Como/

   La version franaise se trouve avec les autres HOWTO :
   http://www.freenix.org/linux/HOWTO/.

   Vous tes explicitement autoriss  traduire ce document dans votre
   langue. Je vous demande simplement de mettre un lien vers la version
   originale et de me donner l'adresse URL de votre traduction pour que
   je puisse moi-mme mettre un lien.

1.3 Retours

   Les retours concernant ce document seront vivement apprcis. Sans vos
   propositions, ce document n'existerait pas. Envoyez donc vos ajouts,
   commentaires et critiques  vuskan-feedback@veus.hr.

   Adressez vos commentaires concernant la version franaise 
   mailto:arnaud@carrosse.frmug.org.

1.4 Contributeurs

   Ce document est une version modifie de la version d'origine de Paul
   Makeev.

   Les personnes suivantes ont contribu  ce mini-HOWTO.
     * Heiko Schlittermann
     * Jonathan Smith
     * Dan Khabaza
     * Hal Sadofsky
     * Henrik Stoerner
     * Paul Rossington
     * et de nombreux autres

1.5 Copyright

   Ce HOWTO est  Vladimir Vuksan, 1998 et peut tre distribu selon les
   termes de la licence OpenContent (OPL)
   http://www.opencontent.org/opl.shtml

2. Le protocole DHCP

   DHCP est le protocole de configuration dynamique d'htes (Dynamic Host
   Configuration Protocol). Il est utilis pour contrler certains
   paramtres importants de la configuration rseau des htes (faisant
   tourner un client) au moyen d'un serveur. DHCP maintient une
   compatibilit ascendante avec BOOTP. Pour plus d'informations, voyez
   entre autres la RFC 2131 (anciennement la RFC 1541). Reportez-vous 
   la section _Autres documents intressants_  la fin du document. Vous
   pouvez aussi lire la FAQ DHCP.

   Ce mini-HOWTO dcrit aussi bien l'utilisation du dmon _serveur_ DHCP
   que celle du dmon _client_ DHCP. La plupart des gens utilise le dmon
   client, qui est utilis par des stations pour obtenir des informations
   sur leur configuration rseau depuis un serveur distant. Le dmon
   serveur est utilis par les administrateurs rseau pour distribuer ces
   informations aux clients ; donc si vous tes juste un utilisateur,
   vous avez besoin du dmon _client_.

3. Configuration des clients

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

3.1 Tlchargement du dmon client (dhcpcd)

   En fonction de votre distribution, vous pouvez avoir besoin de
   tlcharger le dmon client DHCP. Si vous voulez le compiler  partir
   des sources, vous avez besoin du paquetage dhcpcd, dont la dernire
   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 tlcharges depuis :

     * ftp://ftp.phystech.com/pub/ (site principal)
     * http://www.cps.msu.edu/~dunham/out/

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

3.2 Slackware

   Vous pouvez tlcharger la dernire version de dhcpcd depuis n'importe
   quel miroir de Metalab ou depuis l'un des sites suivants :
     * ftp://metalab.unc.edu/pub/Linux/system/network/daemons
     * ftp://ftp.phystech.com/pub/ (site principal)

   Tlchargez la dernire version de dhcpcd.tar.gz.
     * Dcompactez la :

tar -zxvf dhcpcd-1.3.18pl1.tar.gz

     * Allez dans le nouveau rpertoire et compilez dhcpcd

cd dhcpcd-1.3.18pl1
make

     * Installez le (vous devez tre root pour lancer la commande
       suivante)

make install

   Cela va crer un rpertoire /etc/dhcpc o dhcpcd va stocker des
   informations pour DHCP, et le fichier dhcpcd va tre copi dans
   /usr/sbin.

   Pour que le systme initialise DHCP au dmarrage, tapez :

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

   Cela va renommer l'ancien script d'initalisation du rseau en
   rc.inet1.OLD. Maintenant, il vous faut crer 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 redmarrez 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 rcente est
   vraiment facile. Vous devez simplement lancer le panneau de contrle
   en tapant :

control-panel

   puis
     * Slectionnez _Network Configuration_
     * Cliquez sur _Interfaces_
     * Cliquez sur _Add_
     * Slectionnez _Ethernet_
     * Dans la fentre _Edit Ethernet/Bus Interface_, slectionnez
       _Activate interface at boot time_ et choisissez _DHCP_ comme
       _Interface configuration protocol_.

   Notez que dans la Red Hat 6.x, le client DHCP par dfaut 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 supplmentaires d'Alexander Stevenson
   alexander.stevenson@home.com :

   Je n'ai pas russi  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 hte

   Le nom d'hte est sans importance, mais sans lui, le serveur ne rpond
   pas.

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

   En rsum, si vous utilisez Linuxconf, et si a ne fonctionne pas
   aprs avoir choisi l'option "DHCP" pour votre interface, essayez
   d'ajouter "-h hte"  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 faon plus lgante d'ajouter le nom d'hte est indique par Aad
   van der Klaauw :

   Je configure en ce moment une passerelle sur mon rseau personnel.
   J'ai eu besoin d'indiquer l'adresse MAC et d'utiliser l'option "-h
   hte". J'ai dcid de _ne pas_ changer le script, mais plutt
   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 redmarrer 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 rcente est
   vraiment facile. Vous devez simplement lancer le panneau de contrle
   en tapant :

control-panel

   puis
     * Slectionnez _Network Configuration_
     * Cliquez sur _Interfaces_
     * Cliquez sur _Add_
     * Slectionnez _Ethernet_
     * Dans la fentre _Edit Ethernet/Bus Interface_, slectionnez
       _Activate interface at boot time_ et choisissez _DHCP_ comme
       _Interface configuration protocol_.

   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 rpertoire
   RPMS de votre CD-ROM ou le tlcharger 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 donnes pour la Slackvare ( voir ici).

   Ces informations m'ont t communiques par nothing@cc.gatech.edu :
     _________________________________________________________________

J'ai enlev mon IP fixe et mon nom d'hte 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 cre jamais de /etc/dhcpc/resolv.c
onf,
et je dois utiliser un /etc/resolv.conf statique).

Dans /etc/sysconfig/network, j'ai enlev les entres HOSTNAME et GATEWAY. J'ai
laiss les autres entres (NETWORKING, DOMAINNAME, GATEWAYDEV) telles quelles.

Dans /etc/sysconfig/network-scripts/ifcfg-eth0, j'ai enlev les entres
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 redmarrez 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 dcompacter 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'aprs 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 cre des liens vers ce script dans les
   rpertoires /etc/rc?.d/.

   Le contenu des rpertoires /etc/rc?.d/ est ensuite xcut
   automatiquement  l'initialisation du systme.

   Si vous ne redmarrez pas votre systme aprs l'installation, vous
   devriez dmarrer le dmon 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 problme dcrit ci-dessous. En
   rgle gnrale, le mode d'emploi est le mme que pour la version
   actuelle des Red Hat 6.x et Mandrake 6.x

   Le problme est que par dfaut, la Red Hat 6.x utilise le client DHCP
   pump, qui ne fonctionne pas correctement sous LinuxPPC. Pour
   contourner ce problme, vous devez installer la dernire 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 lgrement plus rcente se trouve dans le rpertoire
   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

   Aprs la rinitialisation de votre machine, votre interface rseau
   devrait tre configure. 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 dsesprez pas, c'est un rsultat 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 problmes.
   dhcpcd est un dmon qui continuera  tourner tant que votre machine
   restera allume. 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 systme (/var/adm/syslog/ sur
   Slackware, /var/log/syslog/ sur Red Hat ou OpenLinux).

   Une dernire chose : vous devez prciser vos serveurs de noms. Il
   existe deux faons de le faire. Vous pouvez demander les adresses de
   ses serveurs de noms  votre fournisseur d'accs 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 crer un
   resolv.conf adapt dans /etc/dhcpc/. Pour ma part, j'ai dcid de
   laisser faire dhcpcd. Pour cela :
     * Sauvegardez votre ancien /etc/resolv.conf

mv /etc/resolv.conf /etc/resolv.conf.OLD

     * Si le rpertoire /etc/dhcpc/ n'existe pas, crez le

mkdir /etc/dhcpc

     * Faites un lien de /etc/dhcpc/resolv.conf vers /etc/resolv.conf

ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf

   Si a ne fonctionne pas, essayez ceci (rparation suggre par
   nothing@cc.gatech.edu, avec quelques modifications de Henrik
   Stoerner) :

   J'ai du procder  ce changement car mon dhcpcd ne cre 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 rsultat! :-)

3.9 Notes diverses

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

   Si vous n'avez besoin de votre connexion qu'occasionnellement, vous
   pouvez dmarrer 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 Problmes

   Si vous avez bien suivi toutes les tapes ci-dessus et si malgr tout
   vous ne pouvez pas accder au rseau, plusieurs explications sont
   possibles.

  Votre carte rseau est mal configure.

   Pendant l'initialisation du systme, Linux va rechercher votre carte
   rseau 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
   gnrique (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 gnralement.

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

   Essayez de lancer dhcpcd par

dhcpcd -r

   Utilisez ifconfig pour vrifier que votre interface rseau est
   configure (attendez quelques secondes que la configuration soit
   termine; au dpart, vous obtiendrez "inet addr: 0.0.0.0").

   Si cela rsoud votre problme, 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 dmarrage, je vois le message d'erreur "Using DHCP for eth0 ... failed"
  mais mon systme 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 rseau fonctionne pendant quelques minutes avant d'arrter de rpondre.

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

ps -auxww | grep gate

   S'il tourne effectivement, dsinstallez-le avec le gestionnaire RPM de
   Red Hat ou enlevez son entre dans /etc/rc.d/.

  Ma carte ethernet est reconnue au dmarrage, mais j'ai toujours le message
  "NO DHCPOFFER" dans le journal du systme. Il se trouve que j'ai une carte
  ethernet PCMCIA.

   Assurez-vous que le port 10baseT (la "prise de tlphone") de votre
   carte est activ. Le meilleur moyen de le vrifier est de regarder
   pour quel type de connecteur votre carte est configure  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 problmes  cause des utilitaires PCMCIA (plus
   spcifiquement 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 redmarrez la machine.

  Mon client DHCP envoie des requtes, mais personne ne rpond.

   Cette partie est due  Peter Amstutz.

   Sur certains systmes, vous devez inclure un nom d'hte dans la
   requte DHCP. Avec dhcpcd, vous pouvez faire a comme a :

dhcpcd -h hotetoto

   Le nom d'hte requis correspond probablement  votre nom d'utilisateur
   sur le rseau.

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

   En gnral, un modem cable mmorise l'adresse ethernet de votre carte
   rseau. Donc si vous connectez une nouvelle machine ou changez de
   carte rseau, vous allez devoir "apprendre"  votre modem 
   reconnaitre la nouvelle machine ou la nouvelle carte. En gnral, 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 rgles de filtrage (installes par
   ipfwadm) qui interdisent le trafic sur les ports 67 et 68 utiliss par
   DHCP pour communiquer les informations de configuration. Vrifiez 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 problme, mais si
   malgr tout vous rencontrez des problmes, regardez de ce ct. Si
   vous avez la (mal)chance d'avoir Windows NT sur votre machine,
   vrifiez dans l'observateur dvnements, 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 problme, allez voir
   ftp://vanbuer.ddns.org/pub/ et tlchargez ou bien un binaire, ou bien
   les sources de la version corrige.

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 faon 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
   prsente 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 rellement
   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, crez 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 adquate. 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.

4. Configurer un serveur DHCP

4.1 Un serveur DHCP pour UNIX

   Il existe plusieurs serveurs DHCP pour les systmes d'exploitation "
   la UN*X", aussi bien commerciaux que libres. L'un des plus populaires
   est le DHCPd de Paul Vixie et de l'ISC. Actuellement, la dernire
   version est la 2.0(dont l'utilisation est conseille pour le commun
   des mortels), mais la 3.0 est en bta-test. Vous pouvez les obtenir
   depuis ftp://ftp.isc.org/isc/dhcp/.

   Certaines distributions fournissent un paquetage dhcpd prcompil; si
   vous l'avez obtenu de cette manire, vous pouvez ignorer ce qui suit.

   Aprs avoir tlcharg le serveur, dcompactez le. Ensuite, placez
   vous dans le rpertoire de la distribution et tapez :

./configure

   La configuration des diffrents paramtres va prendre quelques temps.
   Une fois qu'elle est termine, tapez :

make

   puis

make install

4.2 Configuration du serveur DHCP

   Une fois le serveur install, tapez ifconfig -a. Vous devriez obtenir
   quelque chose comme a :
     _________________________________________________________________

eth0      Link encap:10Mbps Ethernet  HWaddr 00:C0:4F:D3:C4:62
          inet addr:183.217.19.43  Bcast:183.217.19.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2875542 errors:0 dropped:0 overruns:0
          TX packets:218647 errors:0 dropped:0 overruns:0
          Interrupt:11 Base address:0x210
     _________________________________________________________________

   Si le mot MULTICAST n'apparat pas, vous devez recompiler votre noyau
   avec le support multicast. Sur la plupart des systmes, a ne devrait
   pas tre ncessaire.

   Ensuite, ajoutez une route pour 255.255.255.255. D'aprs le fichier
   README du DHCPd :

Pour que dhcpd fonctionne correctement avec des clients DHCP pointilleux
(comme celui de Windows 95), il doit pouvoir envoyer des paquets IP avec une
adresse de destination de 255.255.255.255. Malheureusement, Linux insiste pour
changer 255.255.255.255 en l'adresse de diffusion du rseau (ici
192.5.5.223). Ceci constitue une violation du protocole DHCP et, alors que
beaucoup de clients DHCP ignorent ce problme, certains (par exemple tous ceux
de Microsoft) le remarquent. Les clients qui ont ce problme sembleront ne pas
voir les messages DHCPOFFER du serveur.

   Pour cela, tapez :

route add -host 255.255.255.255 dev eth0

   Si vous voyez un message d'erreur :

"255.255.255.255: Unknown host"

   essayez d'ajouter la ligne suivante  votre fichier /etc/hosts :

255.255.255.255 tout-le-monde

   Ensuite, essayez :

route add -host tout-le-monde dev eth0

   ou

route add 255.255.255.0 dev eth0

   eth0 dsigne bien sr l'interface rseau que vous utilisez. Si vous en
   utilisez une autre, faites les changements ncessaires.

4.3 Options de DHCPd

   Maintenant, il vous faut configurer DHCPd. Pour cela, vous allez
   devoir crer ou diter /etc/dhcpd.conf. Il existe une interface
   graphique pour configurer /etc/dhcpd.conf sous KDE (
   http://www.kde.org/), appele kcmdhcpd, trs similaire  l'outil de
   configuration de DHCP de Windows NT. Lorsque KDE 2.0 sortira (NdT :
   C'est fait depuis quelques mois), il devrait inclure kcmdhcpd. Vous
   pouvez aussi vous le procurer directement 
   ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/.

   Si vous prfrez configurer dhcpd  la main, suivez les instructions
   ci-dessous.

   La plupart du temps, vous voudrez assigner des adresses IP
   alatoirement. Cela peut se faire de la faon suivante :
     _________________________________________________________________

# Exemple de /etc/dhcpd.conf
# (Ajoutez vos commentaires ici)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mondomaine.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
   range 192.168.1.150 192.168.1.200;
}
     _________________________________________________________________

   Le serveur DHCP distribuera aux clients des adresses IP dans les
   intervalles 192.168.1.10-192.168.1.100 et 192.168.1.150-192.168.1.200.
   L'attribution de l'adresse IP se fera pour une dure de 600 secondes
   si le client ne demande pas une dure diffrente, la dure maximale du
   bail tant de 7200 secondes. Le serveur va galement "conseiller" au
   client d'utiliser le masque de sous-rseau 255.255.255.0, l'adresse de
   diffusion 192.168.1.255, 192.168.1.254 comme routeur/passerelle et
   192.168.1.1 et 192.168.1.2 comme serveurs DNS.

   Si vous devez spcifier un serveur WINS pour vos clients Windows, vous
   devrez inclure l'option netbios-name-servers :
     _________________________________________________________________

option netbios-name-servers 192.168.1.1;
     _________________________________________________________________

   Vous pouvez aussi assigner des adresses IP spcifiques en utilisant
   l'adresse ethernet du client :
     _________________________________________________________________

host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}
     _________________________________________________________________

   Cela assignera l'adresse IP 192.168.1.222  un client dont l'adresse
   ethernet est 08:00:2b:4c:59:23.

   Vous pouvez aussi mlanger ces diffrentes possibilits, par exemple
   si vous voulez donner des adresses IP statiques  certains clients
   (les serveurs, par exemple) et des adresses IP dynamiques  d'autres
   (par exemple les ordinateurs portables de certains utilisateurs). Il
   existe de nombreuses autres options: adresse du serveur NIS, du
   serveur d'horloge... Si vous avez besoin de ces options, lisez la page
   de manuel de dhcpd.conf.

4.4 Dmarrage du serveur

   Il ne reste qu'une chose  faire avant de dmarrer le serveur. La
   plupart des installations de DHCPd ne crent pas par dfaut de fichier
   dhcpd.leases. Ce fichier est utilis par DHCPd pour stocker des
   informations  propos des attributions en cours de validit. Il est en
   format texte brut, donc vous pouvez le lire pendant le fonctionnement
   de DHCPd. Pour le crer, tapez :

touch /var/state/dhcp/dhcpd.leases

   sur la ligne de commandes. Cela va crer un fichier vide (de taille
   nulle). Certaines vieilles versions de dhcpd 2.0 plaaient ce fichier
   en /etc/dhcpd.leases. Vous n'avez pas  y changer quoi que ce soit;
   c'est dhcpd qui le manipulera lui-mme. Si vous voyez un message
   d'erreur disant que le fichier n'existe pas, ignorez le et passez 
   l'tape suivante.

   Vous pouvez maintenant invoquer le serveur DHCP. Contentez vous de
   taper (ou de rajouter dans les scripts de dmarrage) :

/usr/sbin/dhcpd

   Cette commande invoquera dhcpd sur l'interface eth0. Pour l'utiliser
   sur une autre interface, prcisez-le simplement sur la ligne de
   commande, par exemple :

/usr/sbin/dhcpd eth1

   Pour vrifier que tout fonctionne correctement, vous devriez d'abord
   activer le mode de dbogage et mettre le serveur en avant-plan. Vous
   pouvez le faire en tapant :

/usr/sbin/dhcpd -d -f

   Ensuite, allumez un de vos clients et regardez la console de votre
   serveur. Vous verrez apparaitre un certain nombre de messages de
   dbogage. Si tout se passe bien, vous avez termin. :-) Quittez dhcpd
   et relancez-le sans les options -d -f. Si vous voulez qu'il soit lanc
   au dmarrage, rajoutez dhcpd par exemple au fichier
   /etc/rc.d/rc.local.

4.5 Autres documents intressants

   Le numro d'avril 2000 de _Linux Magazine_ contient un bon article
   intitul Network Nirvana : How to make Network Configuration as easy
   as DHCP qui traite de la configuration de DHCP.
