<!doctype linuxdoc system>
<article>
<title>
mini-HOWTO DHCP (DHCPd/DHCPcd)
<author>Vladimir Vuksan <tt>&lt;vuksan@veus.hr&gt;</tt><newline>
Traduction française par Arnaud Gomes-do-Vale <tt>&lt;arnaud@carrosse.frmug.org&gt;</tt>
</author>

<date>v4.12, 22 octobre 2000</date>

<abstract>
Ce document a pour but de r&eacute;pondre &agrave; des questions de base sur la
configuration de votre machine Linux comme serveur ou client DHCP.
</abstract>

<toc>

<sect> <heading>Introduction</heading>

<p>

<sect1> Avertissements
<p>
Nous d&eacute;clinons toute responsabilit&eacute; quant au contenu de ce
document. L'utilisation des concepts, des exemples ou de tout autre contenu se
fait enti&egrave;rement &agrave; vos propres risques. Dans la mesure o&ugrave; il s'agit d'une
nouvelle &eacute;dition de ce document, il peut comporter des erreurs ou des
impr&eacute;cisions susceptibles d'endommager votre syst&egrave;me. Bien que ce soit tr&egrave;s
improbable, je n'en prends pas la responsabilit&eacute;.

De plus, gardez &agrave; l'esprit que les informations contenues dans ce document ne
sont <em>PAS</> officielles. La majeure partie du contenu de ce document est
constitu&eacute;e de suppositions, qui se trouvent donner l'effet pr&eacute;vu pour
certaines personnes. Vous utilisez cette information &agrave; vos risques et p&eacute;rils.

<sect1> Nouvelles versions de ce document
<p>
Les nouvelles versions de ce document <footnote>NdT&nbsp;: il s'agit ici de la
version originale en anglais</> sont disponibles sur&nbsp;:
<url url="http://www.oswg.org/oswg-nightly/DHCP.html">
<p>
Les versions traduites suivantes sont disponibles&nbsp;:
<p>
<itemize>
<item> Chinois - <url url="http://www.linux.org.tw/CLDP/mini/DHCP.html">
<item> Japonais - <url url="http://www.linux.or.jp/JF/JFdocs/DHCP.html">
<item> Espagnol - <url url="ftp://cuates.pue.upaep.mx/pub/linux/LuCAS/CHDP-mini-Como/">
</itemize>
<p>
La version fran&ccedil;aise se trouve avec les autres HOWTO&nbsp;: <url
url="http://www.freenix.org/linux/HOWTO/">.
<p>
Vous &ecirc;tes explicitement autoris&eacute;s &agrave; 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-m&ecirc;me mettre un
lien.

<sect1> Retours
<p>
Les retours concernant ce document seront vivement appr&eacute;ci&eacute;s. Sans vos
propositions, ce document n'existerait pas. Envoyez donc vos ajouts,
commentaires et critiques &agrave; <htmlurl url="mailto:vuksan-feedback@veus.hr"
name="vuskan-feedback@veus.hr">.

Adressez vos commentaires concernant la version fran&ccedil;aise &agrave; <htmlurl
url="mailto:arnaud@carrosse.frmug.org">.

<sect1> Contributeurs
<p>
Ce document est une version modifi&eacute;e de la version d'origine de Paul Makeev.
<p>
Les personnes suivantes ont contribu&eacute; &agrave; ce mini-HOWTO.
<itemize>
<item>Heiko Schlittermann
<item>Jonathan Smith
<item>Dan Khabaza
<item>Hal Sadofsky
<item>Henrik Stoerner
<item>Paul Rossington
<item>et de nombreux autres
</itemize>

<sect1> Copyright
<p>
Ce HOWTO est &copy; Vladimir Vuksan, 1998 et peut &ecirc;tre distribu&eacute; selon les termes
de la licence OpenContent (OPL)
<url url="http://www.opencontent.org/opl.shtml">


<sect> Le protocole DHCP
<p>
DHCP est le protocole de configuration dynamique d'h&ocirc;tes (Dynamic Host
Configuration Protocol). Il est utilis&eacute; pour contr&ocirc;ler certains param&egrave;tres
importants de la configuration r&eacute;seau des h&ocirc;tes (faisant tourner un client) au
moyen d'un serveur. DHCP maintient une compatibilit&eacute; ascendante avec
BOOTP. Pour plus d'informations, voyez entre autres la RFC 2131 (anciennement
la RFC 1541). Reportez-vous &agrave; la section <it>Autres documents int&eacute;ressants</> &agrave; la fin du document. Vous pouvez aussi lire <url
url="http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html" name="la FAQ DHCP">.
<!--
NdT :
La section ressources machin-chose est &agrave; la fin de l'ancien mini-HOWTO DHCPd.
-->

Ce mini-HOWTO d&eacute;crit aussi bien l'utilisation du d&eacute;mon <em>serveur</> DHCP que
celle du d&eacute;mon <em>client</> DHCP. La plupart des gens utilise le d&eacute;mon
client, qui est utilis&eacute; par des stations pour obtenir des informations sur
leur configuration r&eacute;seau depuis un serveur distant. Le d&eacute;mon serveur est
utilis&eacute; par les administrateurs r&eacute;seau pour distribuer ces informations aux
clients ; donc si vous &ecirc;tes juste un utilisateur, vous avez besoin du d&eacute;mon
<em>client</>.

<sect> Configuration des clients
<p>
&Agrave; l'heure actuelle, il existe trois clients DHCP diff&eacute;rents pour Linux&nbsp;:
<tt/dhcpcd/, <tt/pump/ et <tt/dhclient/. Ce mini-HOWTO traite principalement
de <tt/dhcpcd/.

<sect1> T&eacute;l&eacute;chargement du d&eacute;mon client (<tt/dhcpcd/)
<p>
En fonction de votre distribution, vous pouvez avoir besoin de t&eacute;l&eacute;charger le
d&eacute;mon client DHCP. Si vous voulez le compiler &agrave; partir des sources, vous avez
besoin du paquetage <tt/dhcpcd/, dont la derni&egrave;re version est la 1.3.18. Il
est maintenu par Sergei Viznyuk <tt>sergei@phystech.com</> et est aujourd'hui
livr&eacute; sous forme de binaire avec la plupart des distributions.

Les sources de <tt/dhcpcd/ peuvent &ecirc;tre t&eacute;l&eacute;charg&eacute;es depuis&nbsp;:
<p>
<itemize>
<item><url url="ftp://ftp.phystech.com/pub/"> (site principal)
<item><url url="http://www.cps.msu.edu/~dunham/out/">
</itemize>
<p>
Ensuite, suivez les instructions ci-dessous. Elles devraient rester identiques.

<sect1> Slackware <label id="slackware">
<p>
Vous pouvez t&eacute;l&eacute;charger la derni&egrave;re version de <tt/dhcpcd/ depuis n'importe
quel miroir de Metalab ou depuis l'un des sites suivants&nbsp;:
<itemize>
<item><url url="ftp://metalab.unc.edu/pub/Linux/system/network/daemons">
<item><url url="ftp://ftp.phystech.com/pub/"> (site principal)
</itemize>

T&eacute;l&eacute;chargez la derni&egrave;re version de <tt/dhcpcd.tar.gz/.
<itemize>
<item> D&eacute;compactez la&nbsp;:
<tscreen><verb>
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
</verb></tscreen>
<item> Allez dans le nouveau r&eacute;pertoire et compilez <tt/dhcpcd/
<tscreen><verb>
cd dhcpcd-1.3.18pl1
make
</verb></tscreen>
<item> Installez le (vous devez &ecirc;tre root pour lancer la commande suivante)
<tscreen><verb>
make install
</verb></tscreen>
</itemize>

Cela va cr&eacute;er un r&eacute;pertoire <tt>/etc/dhcpc</> o&ugrave; <tt/dhcpcd/ va stocker des
informations pour DHCP, et le fichier <tt/dhcpcd/ va &ecirc;tre copi&eacute; dans
<tt>/usr/sbin</>.

Pour que le syst&egrave;me initialise DHCP au d&eacute;marrage, tapez&nbsp;:
<tscreen><verb>
cd /etc/rc.d
mv rc.inet1 rc.inet1.OLD
</verb></tscreen>

Cela va renommer l'ancien script d'initalisation du r&eacute;seau en
<tt/rc.inet1.OLD/. Maintenant, il vous faut cr&eacute;er un nouveau script
<tt/rc.inet1/. Voici tout ce dont vous avez besoin&nbsp;:
<code>
#!/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
</code>

Sauvegardez le et red&eacute;marrez votre ordinateur.

Quand vous aurez termin&eacute;, allez &agrave; la section <ref id="nameserver"
name="La touche finale">.
<!--
NdT :
Oui, je sais, &ccedil;a fait livre dont vous &ecirc;tes le h&eacute;ros. D&eacute;sol&eacute;, j'ai pas trouv&eacute;
mieux.
NdR : meuh non, c'est tr&egrave;s bien. 
-->

<sect1> Red Hat 6.x et Mandrake 6.x <label id="redhat6">
<p>
La configuration de dhcpcd avec une Red Hat 6.0 ou plus r&eacute;cente est vraiment
facile. Vous devez simplement lancer le panneau de contr&ocirc;le en tapant&nbsp;:
<tscreen><verb>
control-panel
</verb></tscreen>
puis
<itemize>
<item> S&eacute;lectionnez <bf/Network Configuration/
<item> Cliquez sur <bf/Interfaces/
<item> Cliquez sur <bf/Add/
<item> S&eacute;lectionnez <bf/Ethernet/
<item> Dans la fen&ecirc;tre <bf>Edit Ethernet/Bus Interface</>, s&eacute;lectionnez
       <bf>Activate interface at boot time</> et choisissez <bf>DHCP</>
       comme <bf>Interface configuration protocol</>.
</itemize>

<p>
Notez que dans la Red Hat 6.x, le client DHCP par d&eacute;faut est un programme
nomm&eacute; <tt/pump/ qui remplace le <tt/dhcpcd/ mentionn&eacute; ci-dessus. Un paquetage
<tt/dhcpcd/ se trouve sur le CD-ROM, donc si vous ne vous en tirez pas avec
<tt/pump/, vous pouvez toujours essayer avec <tt/dhcpcd/. Une fois <tt/dhcpcd/
install&eacute; (par exemple par <tt/rpm -i dhcpcd-1.3.17pl2-1.i386.rpm/), vous allez
devoir faire quelques modification (voir <ref id="linuxppc-rh6" name="ici">).
<p>
Quelques notes suppl&eacute;mentaires d'Alexander Stevenson <url
url="mailto:alexander.stevenson@home.com"
name="alexander.stevenson@home.com">&nbsp;:
<p>
Je n'ai pas r&eacute;ussi &agrave; utiliser DHCPcd. Finalement, c'est <tt/pump/, inclus dans
la Mandrake 6.0 (et je suppose donc dans la Red Hat) qui a bien voulu
fonctionner. J'ai utilis&eacute; la commande suivante&nbsp;:
<tscreen><verb>
pump -i eth0 -h h&ocirc;te
</verb></tscreen>
Le nom d'h&ocirc;te est sans importance, mais sans lui, le serveur ne r&eacute;pond pas.
<!--
NdT&nbsp;:
Chez moi, &ccedil;a marche. (tm)
Ca doit d&eacute;pendre du serveur; ou alors les scripts de Red Hat sont mieux faits
que ceux de Mandrake, mais &ccedil;a m'&eacute;tonnerait.
-->
<p>
J'ai alors chang&eacute; la ligne correspondante de mon script <tt>/sbin/ifup</> pour
y int&eacute;grer cette modification; la version par d&eacute;faut n'inclut pas l'option
<tt/-h/ et ne fonctionne donc pas chez moi.
<p>
En r&eacute;sum&eacute;, si vous utilisez Linuxconf, et si &ccedil;a ne fonctionne pas apr&egrave;s avoir
choisi l'option "DHCP" pour votre interface, essayez d'ajouter "<tt/-h h&ocirc;te/"
&agrave; l'invocation de <tt/pump/ dans le script <tt>/sbin/ifup</>. Mon script
ressemble maintenant &agrave; &ccedil;a&nbsp;:
<code>
...
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 ...
</code>
<p>
Une fa&ccedil;on plus &eacute;l&eacute;gante d'ajouter le nom d'h&ocirc;te est indiqu&eacute;e par Aad van der 
Klaauw&nbsp;:
<p>
Je configure en ce moment une passerelle sur mon r&eacute;seau personnel. J'ai eu
besoin d'indiquer l'adresse MAC et d'utiliser l'option "-h h&ocirc;te". J'ai
d&eacute;cid&eacute; de <em/ne pas/ changer le script, mais plut&ocirc;t d'utiliser le fichier
de configuration. Dans <tt>/etc/sysconfig/network-scripts/ifcfg-eth0</> j'ai
rajout&eacute; ce qui suit&nbsp;:
<code>
DEVICE="eth0"
MACADDR="00:11:22:33:44:55"
DHCP_HOSTNAME="trigger_for_terayon"
</code>
<!-- NdT&nbsp;: Faut-il traduire &ccedil;a&nbsp;? -->
&Ccedil;a survit aux mises &agrave; jour, et &agrave; mon avis c'est plus propre.
<p>
C'est tout. Il suffit maintenant de red&eacute;marrer votre machine ou de taper
<tscreen><verb>
/sbin/ifup eth0
</verb></tscreen>
sur la ligne de commande.

<sect1> Red Hat 5.x
<p>
La configuration de dhcpcd avec une Red Hat 5.0 ou plus r&eacute;cente est vraiment
facile. Vous devez simplement lancer le panneau de contr&ocirc;le en tapant&nbsp;:
<tscreen><verb>
control-panel
</verb></tscreen>
puis
<itemize>
<item> S&eacute;lectionnez <bf/Network Configuration/
<item> Cliquez sur <bf/Interfaces/
<item> Cliquez sur <bf/Add/
<item> S&eacute;lectionnez <bf/Ethernet/
<item> Dans la fen&ecirc;tre <bf>Edit Ethernet/Bus Interface</>, s&eacute;lectionnez
       <bf>Activate interface at boot time</> et choisissez <bf>DHCP</>
       comme <bf>Interface configuration protocol</>.
</itemize>

Quand vous aurez termin&eacute;, allez &agrave; la section <ref id="nameserver"
name="La touche finale">.

<sect1> Red Hat 4.x et Caldera OpenLinux 1.1/1.2
<p>
<tt/dhcpcd/ est inclus dans la distribution standard de Red Hat sous la forme
d'un paquetage RPM. Vous pouvez le trouver dans le r&eacute;pertoire RPMS de votre
CD-ROM ou le t&eacute;l&eacute;charger depuis <url
url="ftp://ftp.redhat.com/pub/redhat/redhat-4.2/i386/RedHat/RPMS/dhcpcd-0.6-2.i386.rpm">
et l'installer avec&nbsp;:
<tscreen><verb>
rpm -i dhcpcd-0.6-2.i386.rpm
</verb></tscreen>

Vous pouvez &eacute;galement compiler votre propre version en suivant les
instructions donn&eacute;es pour la Slackvare (<ref name="voir ici"
id="slackware">).

Ces informations m'ont &eacute;t&eacute; communiqu&eacute;es par <url url="nothing@cc.gatech.edu">&nbsp;:

<code>
J'ai enlev&eacute; mon IP fixe et mon nom d'h&ocirc;te de /etc/resolv.conf. Par contre, j'y
ai laiss&eacute; la ligne "search ..." et les lignes de mes deux serveurs de noms
(pour je ne sais quelle raison mon dhcpcd ne cr&eacute;e jamais de /etc/dhcpc/resolv.conf,
et je dois utiliser un /etc/resolv.conf statique).

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

Dans /etc/sysconfig/network-scripts/ifcfg-eth0, j'ai enlev&eacute; les entr&eacute;es
IPADDR, NETMASK, NETWORK et BROADCAST. Je n'ai pas touch&eacute; &agrave; DEVICE et
ONBOOT. J'ai chang&eacute; la ligne BOOTPROTO en BOOTPROTO=dhcp.

Sauvegardez le fichier et red&eacute;marrez votre machine.
</code>

Quand vous aurez termin&eacute;, allez &agrave; la section <ref id="nameserver"
name="La touche finale">.

<sect1> Debian
<p>
Il existe un paquet Debian de DHCPcd (assurez-vous que son nom commence bien
par dhcpcd) &agrave; l'adresse <url
      url="ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/">.
<p>
Vous pouvez aussi suivre les instructions d'installation sur Slackware. Pour
d&eacute;compacter le paquetage deb, tapez&nbsp;:
<tscreen><verb>
dpkg -i /l/endroit/ou/vous/mettez/vos/paquetages/deb/dhcpcd*deb
</verb></tscreen>
Il semble que vous n'ayez rien &agrave; configurer. D'apr&egrave;s <url name="Heiko
Schlittermann" url="mailto:heiko@os.inf.tu-dresden.de">&nbsp;:

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

Le contenu des r&eacute;pertoires <tt>/etc/rc?.d/</> est ensuite &eacute;x&eacute;cut&eacute;
automatiquement &agrave; l'initialisation du syst&egrave;me.

Si vous ne red&eacute;marrez pas votre syst&egrave;me apr&egrave;s l'installation, vous devriez
d&eacute;marrer le d&eacute;mon manuellement&nbsp;:
<tscreen><verb>
/etc/init.d/dhcpcd start
</verb></tscreen>

Quand vous aurez termin&eacute;, allez &agrave; la section <ref id="nameserver"
name="La touche finale">.

<sect1> LinuxPPC et MkLinux
<p>
La section suivante a &eacute;t&eacute; &eacute;crite par R. Shapiro.
<p>
Depuis la version "1999" (R5), LinuxPPC est pratiquement compatible avec la
Red Hat 6, &agrave; l'exception du probl&egrave;me d&eacute;crit ci-dessous. En r&egrave;gle g&eacute;n&eacute;rale, le
mode d'emploi est le m&ecirc;me que pour la version actuelle des <ref
id="redhat6" name="Red Hat 6.x et Mandrake 6.x">
<p>
Le probl&egrave;me est que par d&eacute;faut, la Red Hat 6.x utilise le client DHCP
<tt/pump/, qui ne fonctionne pas correctement sous LinuxPPC.
<label id="linuxppc-rh6">
Pour contourner ce probl&egrave;me, vous devez installer la derni&egrave;re version du
<tt/dhcpcd/ de Sergei Viznyuk et &eacute;diter <tt>/sbin/ifup</> pour lui faire
utiliser <tt/dhcpcd/ &agrave; la place de <tt/pump/. Remplacez
<code>
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
     PUMP=true
 fi

 if [ -n "$PUMP" ]; then
</code>
par
<code>
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
</code>
<p>
et faites le changement correspondant dans <tt>/sbin/ifdown</>&nbsp;: remplacez
<code>
if [ "$BOOTPROTO" = bootp -o "$BOOTPROTO" = dhcp ]; then
....
fi
</code>
par
<code>
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
</code>
<p>
Une version RPM pour PPC de <tt/dhcpcd/ se trouve sur le CD de LinuxPPC 1999;
une version l&eacute;g&egrave;rement plus r&eacute;cente se trouve dans le r&eacute;pertoire contrib sur
<url url="ftp://ftp.linuxppc.org/">. Les sources, qui compilent telles quelles
sur LinuxPPC 1999, sont disponibles &agrave; <url
url="ftp://ftp.phystech.com/pub/dhcpcd-1.3.17-pl9.tar.gz">.


<sect1> La touche finale<label id="nameserver">
<p>
Apr&egrave;s la r&eacute;initialisation de votre machine, votre interface r&eacute;seau devrait
&ecirc;tre configur&eacute;e. Tapez&nbsp;:
<tscreen><verb>
ifconfig
</verb></tscreen>
Vus devriez obtenir quelque chose comme &ccedil;a&nbsp;:
<code>
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 
</code>
Si vous avez un nombre &agrave; l'air normal dans "inet addr", c'est bon. Si vous
voyez 0.0.0.0, ne d&eacute;sesp&eacute;rez pas, c'est un r&eacute;sultat temporaire, en attendant
que <tt/dhcpcd/ obtienne l'adresse IP. Si au bout de quelques minutes, vous
voyez toujours 0.0.0.0, consultez la sections <ref id="troubleshooting"
name="probl&egrave;mes">. <tt/dhcpcd/ est un d&eacute;mon qui continuera &agrave; tourner tant que
votre machine restera allum&eacute;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&egrave;me (<tt>/var/adm/syslog/</> sur Slackware,
<tt>/var/log/syslog/</> sur Red Hat ou OpenLinux).

Une derni&egrave;re chose&nbsp;: vous devez pr&eacute;ciser vos serveurs de noms. Il existe deux
fa&ccedil;ons de le faire. Vous pouvez demander les adresses de ses serveurs de noms
&agrave; votre fournisseur d'acc&egrave;s et les mettre dans <tt>/etc/resolv.conf</>. Vous
pouvez aussi laisser <tt/dhcpcd/ obtenir la liste des serveurs de noms depuis
le serveur DHCP et le laisser cr&eacute;er un <tt/resolv.conf/ adapt&eacute; dans
<tt>/etc/dhcpc/</>. Pour ma part, j'ai d&eacute;cid&eacute; de laisser faire
<tt/dhcpcd/. Pour cela&nbsp;:
<itemize>
<item> Sauvegardez votre ancien <tt>/etc/resolv.conf</>
<tscreen><verb>
mv /etc/resolv.conf /etc/resolv.conf.OLD
</verb></tscreen>
<item> Si le r&eacute;pertoire <tt>/etc/dhcpc/</> n'existe pas, cr&eacute;ez le
<tscreen><verb>
mkdir /etc/dhcpc
</verb></tscreen>
<item> Faites un lien de <tt>/etc/dhcpc/resolv.conf</> vers
       <tt>/etc/resolv.conf</>
<tscreen><verb>
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
</verb></tscreen>
</itemize>
Si &ccedil;a ne fonctionne pas, essayez ceci (r&eacute;paration sugg&eacute;r&eacute;e par
<tt/nothing@cc.gatech.edu/, avec quelques modifications de Henrik Stoerner)&nbsp;:

<label id="error3">
J'ai du proc&eacute;der &agrave; ce changement car mon dhcpcd ne cr&eacute;e pas de fichier
<tt>/etc/dhcpc/resolv.conf</>. Dans
<tt>/etc/sysconfig/network-scripts/ifup</>, j'ai effectu&eacute; le changement
suivant, qui n'est qu'une malheureuse bidouille, mais qui marche chez moi&nbsp;:
j'ai chang&eacute;
<code>
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
</code>
en&nbsp;:
<code>
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
</code>
Remarquez le point d'exclamation dans <tt>if [ ! -f
/var/run/dhcp-wait-${DEVICE}.pid ];</tt>.

Maintenant, admirez le r&eacute;sultat! :-)

<sect1> Notes diverses
<p>
Ce qui suit n'est pas &agrave; proprement parler n&eacute;cessaire, mais peut &ecirc;tre utile &agrave;
certaines personnes.

Si vous n'avez besoin de votre connexion qu'occasionnellement, vous pouvez
d&eacute;marrer <tt/dhcpcd/ depuis la ligne de commandes (&agrave; condition d'&ecirc;tre root) en
tapant&nbsp;:
<tscreen><verb>
/usr/sbin/dhcpcd
</verb></tscreen>
Quand vous voulez couper la connexion, tapez&nbsp;:
<tscreen><verb>
/usr/sbin/dhcpcd -k
</verb></tscreen>


<sect1> Probl&egrave;mes<label id="troubleshooting">
<p>
Si vous avez bien suivi toutes les &eacute;tapes ci-dessus et si malgr&eacute; tout vous ne
pouvez pas acc&eacute;der au r&eacute;seau, plusieurs explications sont possibles.

<sect2> Votre carte r&eacute;seau est mal configur&eacute;e.
<p>
Pendant l'initialisation du syst&egrave;me, Linux va rechercher votre carte r&eacute;seau et
devrait afficher quelque chose de ce genre&nbsp;:
<code>
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
</code>
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&eacute;n&eacute;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'&agrave; ce que Linux reconnaisse votre carte. Les IRQ 9, 10 ou 12
conviennent g&eacute;n&eacute;ralement.

<sect2> Votre serveur DHCP ne supporte que la RFC 1541 ou fonctionne sous
     Windows NT.
<p>
Essayez de lancer <tt/dhcpcd/ par
<tscreen><verb>
dhcpcd -r
</verb></tscreen>

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

Si cela r&eacute;soud votre probl&egrave;me, ajoutez l'option "<tt/-r/" &agrave; vos scripts
d'initialisation, c'est &agrave; dire remplacez <tt>/sbin/dhcpcd</> par
<tt>/sbin/dhcpcd -r</>.

Par exemple, sous Red Hat, &eacute;ditez le script
<tt>/etc/sysconfig/network-scripts/ifup</> et changez ce qui suit&nbsp;:
<code>
        IFNAME=$[ {DEVICE} \
        "/sbin/dhcpcd -r -c /etc/"- etc etc.    
</code>

<sect2> Au d&eacute;marrage, je vois le message d'erreur "Using DHCP for eth0
     ... failed" mais mon syst&egrave;me fonctionne correctement.
<p>
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 <ref id="error3" name="ici"> pour corriger &ccedil;a.

<sect2> Mon r&eacute;seau fonctionne pendant quelques minutes avant d'arr&ecirc;ter de
     r&eacute;pondre.
<p>
Il semble que <tt/gated/ (le d&eacute;mon de passerelle) puisse embrouiller le
routage sur des machines Linux, avec le r&eacute;sultat mentionn&eacute; ci-dessus. Regardez
s'il tourne&nbsp;:
<tscreen><verb>
ps -auxww | grep gate
</verb></tscreen>
S'il tourne effectivement, d&eacute;sinstallez-le avec le gestionnaire RPM de Red Hat
ou enlevez son entr&eacute;e dans <tt>/etc/rc.d/</>.

<sect2> Ma carte ethernet est reconnue au d&eacute;marrage, mais j'ai toujours le
     message "NO DHCPOFFER" dans le journal du syst&egrave;me. Il se trouve que j'ai
     une carte ethernet PCMCIA.
<p>
Assurez-vous que le port 10baseT (la "prise de t&eacute;l&eacute;phone") de votre carte est
activ&eacute;. Le meilleur moyen de le v&eacute;rifier est de regarder pour quel type de
connecteur votre carte est configur&eacute;e &agrave; l'allumage, par exemple&nbsp;:
<code>
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
</code>
Des utilisateurs de micro-ordinateurs portables m'ont signal&eacute; qu'ils avaient
ce genre de probl&egrave;mes &agrave; cause des utilitaires PCMCIA (plus sp&eacute;cifiquement
<tt/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&eacute;marrez la
machine.
<!--
NdT&nbsp;:
Tout &ccedil;a suppose une connexion 10baseT, par exemple un modem cable. Je ne vois
pas pourquoi on ne pourrait pas faire de DHCP sur du 10base2.
-->

<sect2> Mon client DHCP envoie des requ&ecirc;tes, mais personne ne r&eacute;pond.
<p>
Cette partie est due &agrave; Peter Amstutz.

Sur certains syst&egrave;mes, vous devez inclure un nom d'h&ocirc;te dans la requ&ecirc;te
DHCP. Avec <tt/dhcpcd/, vous pouvez faire &ccedil;a comme &ccedil;a&nbsp;:
<tscreen><verb>
dhcpcd -h hotetoto
</verb></tscreen>
Le nom d'h&ocirc;te requis correspond probablement &agrave; votre nom d'utilisateur sur le
r&eacute;seau.

<sect2> J'ai bien suivi toutes les &eacute;tapes et ma machine ne se connecte
     toujours pas.
<p>
En g&eacute;n&eacute;ral, un modem cable m&eacute;morise l'adresse ethernet de votre carte
r&eacute;seau. Donc si vous connectez une nouvelle machine ou changez de carte
r&eacute;seau, vous allez devoir "apprendre" &agrave; votre modem &agrave; reconnaitre la nouvelle
machine ou la nouvelle carte. En g&eacute;n&eacute;ral, il suffit d'&eacute;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&eacute; de carte.

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

<sect2> Je suis abonn&eacute; &agrave; MediaOne Express et je ne peux toujours pas me
     connecter.
<!--
NdT&nbsp;:
Je suppose que MediaOne est un FAI cabl&eacute; am&eacute;ricain. Je laisse &ccedil;a, au cas o&ugrave; &ccedil;a 
int&eacute;resserait quelqu'un ailleurs.
-->
<p>
Il semble que MediaOne ait ajout&eacute; quelques extensions &agrave; DHCP qui ne devraient
pas y &ecirc;tre. C'est cens&eacute; ne plus &ecirc;tre un probl&egrave;me, mais si malgr&eacute; tout vous
rencontrez des probl&egrave;mes, regardez de ce c&ocirc;t&eacute;. Si vous avez la (mal)chance
d'avoir Windows NT sur votre machine, v&eacute;rifiez dans l'observateur d&eacute;v&eacute;nements,
vous devriez y trouver un avertissement de ce style&nbsp;:
<code>
DHCP received an unknown option 067 of length 005. The raw option data is 
given  below.

0000: 62 61 73 69 63            basic
</code>
S'il s'agit bien de ce probl&egrave;me, allez voir <url
url="ftp://vanbuer.ddns.org/pub/"> et t&eacute;l&eacute;chargez ou bien un binaire, ou bien
les sources de la version corrig&eacute;e.


<sect1>Un autre client DHCP (le <tt/dhclient/ de l'ISC)
<p>
Si vous n'arrivez pas &agrave; configurer votre connection au moyen de <tt/dhcpcd/,
vous voudrez peut-&ecirc;tre essayer le <tt/dhclient/ de l'ISC. <tt/dhclient/ fait
partie de la distribution DHCP de l'ISC, qui contient un serveur et un
client. Les instructions sur la fa&ccedil;on de vous procurer et de compiler la
distribution DHCP se trouvent dans la section <ref id="dhcpserver" name="Un
serveur DHCP pour UNIX">. Quand vous aurez termin&eacute;, revenez &agrave; la section
pr&eacute;sente pour la configuration du client.

Les informations qui suivent m'ont &eacute;t&eacute; fournies par Ted Lemon <url
url="mailto:mellon@isc.org" name="mellon@isc.org">, un des auteurs de
<tt/dhclient/.

Avec la version actuelle du client DHCP, vous n'avez pas r&eacute;ellement besoin
d'un fichier <tt/dhclient.conf/. Il vous suffit d'invoquer
<tt/dhclient/&nbsp;:
<tscreen><verb>
/sbin/dhclient
</verb></tscreen>
Cette commande va configurer toutes les interfaces pouvant faire de la
diffusion (NdT&nbsp;: broadcast). Si cela ne fonctionne pas, ou si vous
ne voulez configurer qu'une seule interface, cr&eacute;ez un fichier
<tt>/etc/dhclient.conf</> &agrave; partir de l'exemple de configuration
suivant&nbsp;:
<code>
interface "eth0" {
  send dhcp-client-identifier 1:xx:xx:xx:xx:xx:xx;
  send dhcp-lease-time 86400;
}
</code>
Ici, nous supposons que votre interface ethernet est eth0&nbsp;; sinon, faites
la modification ad&eacute;quate. Remplacez &eacute;galement xx:xx:xx:xx:xx:xx par votre
adresse ethernet. Ce fichier <tt/dhclient.conf/ fait ressembler votre client
DHCP &agrave; un client Windows&nbsp;95.


<sect> Configurer un serveur DHCP

<sect1> Un serveur DHCP pour UNIX <label id="dhcpserver">
<p>
Il existe plusieurs serveurs DHCP pour les syst&egrave;mes d'exploitation "&agrave; 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 derni&egrave;re version est
la 2.0(dont l'utilisation est conseill&eacute;e pour le commun des mortels), mais
la 3.0 est en b&ecirc;ta-test. Vous pouvez les obtenir depuis <url
      url="ftp://ftp.isc.org/isc/dhcp/">. 

Certaines distributions fournissent un paquetage <tt/dhcpd/ pr&eacute;compil&eacute;; si
vous l'avez obtenu de cette mani&egrave;re, vous pouvez ignorer ce qui suit.

Apr&egrave;s avoir t&eacute;l&eacute;charg&eacute; le serveur, d&eacute;compactez le. Ensuite, placez vous dans
le r&eacute;pertoire de la distribution et tapez&nbsp;:
<tscreen><verb>
./configure
</verb></tscreen>
La configuration des diff&eacute;rents param&egrave;tres va prendre quelques temps. Une fois 
qu'elle est termin&eacute;e, tapez&nbsp;:
<tscreen><verb>
make
</verb></tscreen>
puis
<tscreen><verb>
make install
</verb></tscreen>

<sect1> Configuration du serveur DHCP
<p>
Une fois le serveur install&eacute;, tapez <tt/ifconfig -a/. Vous devriez obtenir
quelque chose comme &ccedil;a&nbsp;:
<code>
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
</code>
Si le mot MULTICAST n'appara&icirc;t pas, vous devez recompiler votre noyau avec le
support multicast. Sur la plupart des syst&egrave;mes, &ccedil;a ne devrait pas &ecirc;tre
n&eacute;cessaire.

Ensuite, ajoutez une route pour 255.255.255.255. D'apr&egrave;s le fichier README du
DHCPd&nbsp;:
<tscreen><verb>
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 r&eacute;seau (ici
192.5.5.223). Ceci constitue une violation du protocole DHCP et, alors que
beaucoup de clients DHCP ignorent ce probl&egrave;me, certains (par exemple tous ceux
de Microsoft) le remarquent. Les clients qui ont ce probl&egrave;me sembleront ne pas
voir les messages DHCPOFFER du serveur.
</verb></tscreen>
Pour cela, tapez&nbsp;:
<tscreen><verb>
route add -host 255.255.255.255 dev eth0
</verb></tscreen>
Si vous voyez un message d'erreur&nbsp;:
<tscreen><verb>
"255.255.255.255: Unknown host"
</verb></tscreen>
essayez d'ajouter la ligne suivante &agrave; votre fichier <tt>/etc/hosts</>&nbsp;:
<tscreen><verb>
255.255.255.255 tout-le-monde
</verb></tscreen>
Ensuite, essayez&nbsp;:
<tscreen><verb>
route add -host tout-le-monde dev eth0
</verb></tscreen>
ou
<tscreen><verb>
route add 255.255.255.0 dev eth0
</verb></tscreen>
<tt/eth0/ d&eacute;signe bien s&ucirc;r l'interface r&eacute;seau que vous utilisez. Si vous en
utilisez une autre, faites les changements n&eacute;cessaires.

<sect1> Options de DHCPd
<p>
Maintenant, il vous faut configurer DHCPd. Pour cela, vous allez devoir cr&eacute;er
ou &eacute;diter <tt>/etc/dhcpd.conf</>. Il existe une interface graphique pour
configurer <tt>/etc/dhcpd.conf</> sous KDE (<url url="http://www.kde.org/">),
appel&eacute;e <tt/kcmdhcpd/, tr&egrave;s similaire &agrave; l'outil de configuration de DHCP de
Windows NT. Lorsque KDE 2.0 sortira (NdT&nbsp;: C'est fait depuis quelques
mois), il devrait inclure <tt/kcmdhcpd/. Vous pouvez aussi vous le
procurer directement &agrave; <url
      url="ftp://ftp.us.kde.org/pub/kde/unstable/apps/network/">.
<p>
Si vous pr&eacute;f&eacute;rez configurer <tt/dhcpd/ &agrave; la main, suivez les instructions
ci-dessous.
<p>
La plupart du temps, vous voudrez assigner des adresses IP al&eacute;atoirement. Cela
peut se faire de la fa&ccedil;on suivante&nbsp;:

<code>
# 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;
}
</code>
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 durée de 600 secondes si le client ne demande pas une dur&eacute;e
diff&eacute;rente, la dur&eacute;e maximale du bail &eacute;tant de 7200 secondes. Le serveur va &eacute;galement
"conseiller" au client d'utiliser le masque de sous-r&eacute;seau 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 sp&eacute;cifier un serveur WINS pour vos clients Windows, vous devrez
inclure l'option <tt/netbios-name-servers/&nbsp;:
<code>
option netbios-name-servers 192.168.1.1;
</code>

Vous pouvez aussi assigner des adresses IP sp&eacute;cifiques en utilisant l'adresse
ethernet du client&nbsp;:
<code>
host haagen {
   hardware ethernet 08:00:2b:4c:59:23;
   fixed-address 192.168.1.222;
}
</code>
Cela assignera l'adresse IP 192.168.1.222 &agrave; un client dont l'adresse ethernet
est 08:00:2b:4c:59:23.

Vous pouvez aussi m&eacute;langer ces diff&eacute;rentes possibilit&eacute;s, par exemple si vous
voulez donner des adresses IP statiques &agrave; certains clients (les serveurs, par
exemple) et des adresses IP dynamiques &agrave; 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.

<sect1> D&eacute;marrage du serveur
<p>
Il ne reste qu'une chose &agrave; faire avant de d&eacute;marrer le serveur. La plupart des
installations de DHCPd ne cr&eacute;ent pas par d&eacute;faut de fichier
<tt/dhcpd.leases/. Ce fichier est utilis&eacute; par DHCPd pour stocker des
informations &agrave; propos des attributions en cours de validit&eacute;. Il est en format texte
brut, donc vous pouvez le lire pendant le fonctionnement de DHCPd. Pour le
cr&eacute;er, tapez&nbsp;:
<tscreen><verb>
touch /var/state/dhcp/dhcpd.leases
</verb></tscreen>
sur la ligne de commandes. Cela va cr&eacute;er un fichier vide (de taille
nulle). Certaines vieilles versions de <tt/dhcpd/ 2.0 pla&ccedil;aient ce fichier en
<tt>/etc/dhcpd.leases</>. Vous n'avez pas &agrave; y changer quoi que ce soit; c'est
<tt/dhcpd/ qui le manipulera lui-m&ecirc;me. Si vous voyez un message d'erreur
disant que le fichier n'existe pas, ignorez le et passez &agrave; l'&eacute;tape suivante.

Vous pouvez maintenant invoquer le serveur DHCP. Contentez vous de taper (ou
de rajouter dans les scripts de d&eacute;marrage)&nbsp;:
<tscreen><verb>
/usr/sbin/dhcpd
</verb></tscreen>
Cette commande invoquera <tt/dhcpd/ sur l'interface eth0. Pour l'utiliser sur
une autre interface, pr&eacute;cisez-le simplement sur la ligne de commande, par
exemple&nbsp;:
<tscreen><verb>
/usr/sbin/dhcpd eth1
</verb></tscreen>
Pour v&eacute;rifier que tout fonctionne correctement, vous devriez d'abord activer
le mode de d&eacute;bogage et mettre le serveur en avant-plan. Vous pouvez le faire
en tapant&nbsp;:
<tscreen><verb>
/usr/sbin/dhcpd -d -f
</verb></tscreen>
Ensuite, allumez un de vos clients et regardez la console de votre
serveur. Vous verrez apparaitre un certain nombre de messages de d&eacute;bogage. Si
tout se passe bien, vous avez termin&eacute;. :-) Quittez <tt/dhcpd/ et relancez-le
sans les options <tt/-d -f/. Si vous voulez qu'il soit lanc&eacute; au d&eacute;marrage,
rajoutez <tt/dhcpd/ par exemple au fichier <tt>/etc/rc.d/rc.local</>.

<sect1> Autres documents int&eacute;ressants
<p>
Le num&eacute;ro d'avril 2000 de <em/Linux Magazine/ contient un bon article
intitul&eacute; <url name="Network Nirvana&nbsp;: How to make Network Configuration
as easy as DHCP"
      url="http://www.linux-mag.com/2000-04/networknirvana_01.html"> qui
traite de la configuration de DHCP.

<!--NdRelecteur ou NdQui on veut, il s'agit là d'une proposition. La version anglaise du pr&eacute;sent document mentionne une 
section &laquo;&nbsp;Ressources sur internet&nbsp;&raquo; qui n'appara&icirc;t plus depuis plusieurs versions
du DHCP mini-HOWTO (ou DHCPd mini-HOWTO)&nbsp;; Voici le contenu de cette section telle qu'elle apparaissait (et donc non
traduite ;-) dans la version 1.2 du 24 juin 1997&nbsp;:
<verb>
http://www.isc.org/dhcp.html
ISC DHCP home page. You can get a lot of information here.
This is my favorite site.

http://www.isc.org/bind.html
BIND v.8 information.

http://www-leland.stanford.edu/%7Ellurch/win95netbugs/faq-c.html
A comprehensive list of setting for Windows-95.

http://www.bucknell.edu/~droms/dhcp/index.html
Very good FAQ on DHCP, a lot of links. By Ralph Droms.

http://web.syr.edu/~jmwobus/comfaqs/dhcp.faq.html
Good general DHCP FAQ. A lot of info, lists of resources. By John Wobus.

Mailing lists:
dhcp-server@fugue.com - list discussing ISC/Vixie DHCPD.
dhcp-v4@bucknell.edu  - list discussing bucknell DHCPD
</verb> 
-->


</article>