mini-HOWTO DHCP (DHCPd/DHCPcd)
Vladimir Vuksan <vuksan@veus.hr>
Traduction française par Arnaud Gomes-do-Vale <arnaud@carrosse.frmug.org>
v4.12, 22 octobre 2000
Ce document a pour but de répondre à des questions de base sur la configuration de votre machine Linux comme serveur ou client DHCP.
1. Introduction
1.1 Avertissements
Nous déclinons toute responsabilité quant au contenu de ce document. L'utilisation des concepts, des exemples ou de tout autre contenu se fait entièrement à vos propres risques. Dans la mesure où il s'agit d'une nouvelle édition de ce document, il peut comporter des erreurs ou des imprécisions susceptibles d'endommager votre système. Bien que ce soit très 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 constituée de suppositions, qui se trouvent donner l'effet prévu pour certaines personnes. Vous utilisez cette information à vos risques et périls.
1.2 Nouvelles versions de ce document
Les nouvelles versions de ce document
NdT : il s'agit ici de la version originale en anglaissont 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 française se trouve avec les autres HOWTO : http://www.freenix.org/linux/HOWTO/.
Vous êtes explicitement autorisés à 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ême mettre un lien.
1.3 Retours
Les retours concernant ce document seront vivement appréciés. 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 française à mailto:arnaud@carrosse.frmug.org.
1.4 Contributeurs
Ce document est une version modifiée 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'hôtes (Dynamic Host Configuration Protocol). Il est utilisé pour contrôler certains paramètres importants de la configuration réseau des hôtes (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 intéressants à la fin du document. Vous pouvez aussi lire la FAQ DHCP.
Ce mini-HOWTO décrit aussi bien l'utilisation du démon serveur DHCP que celle du démon client DHCP. La plupart des gens utilise le démon client, qui est utilisé par des stations pour obtenir des informations sur leur configuration réseau depuis un serveur distant. Le démon serveur est utilisé par les administrateurs réseau pour distribuer ces informations aux clients ; donc si vous êtes juste un utilisateur, vous avez besoin du démon client.
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 :
- 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 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
.
- Décompactez la :
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
- Allez dans le nouveau répertoire et compilez
dhcpcd
cd dhcpcd-1.3.18pl1 make
- Installez le (vous devez être root pour lancer la commande suivante)
make install
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
- Sélectionnez Network Configuration
- Cliquez sur Interfaces
- Cliquez sur Add
- Sélectionnez Ethernet
- Dans la fenêtre Edit Ethernet/Bus Interface, sélectionnez Activate interface at boot time et choisissez DHCP comme Interface configuration protocol.
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
- Sélectionnez Network Configuration
- Cliquez sur Interfaces
- Cliquez sur Add
- Sélectionnez Ethernet
- Dans la fenêtre Edit Ethernet/Bus Interface, sélectionnez 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 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/