<[email protected]>
<[email protected]>
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.
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 :
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.
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 à [email protected].
Adressez vos commentaires concernant la version française à mailto:[email protected].
Ce document est une version modifiée de la version d'origine de Paul Makeev.
Les personnes suivantes ont contribué à ce mini-HOWTO.
Ce HOWTO est © Vladimir Vuksan, 1998 et peut être distribué selon les termes de la licence OpenContent (OPL) http://www.opencontent.org/opl.shtml
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.
À l'heure actuelle, il existe trois clients DHCP différents pour Linux :
dhcpcd
, pump
et dhclient
. Ce mini-HOWTO traite principalement
de dhcpcd
.
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 [email protected]
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.
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
.
tar -zxvf dhcpcd-1.3.18pl1.tar.gz
dhcpcd
cd dhcpcd-1.3.18pl1
make
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.
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 [email protected] :
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"
C'est tout. Il suffit maintenant de redémarrer votre machine ou de taper
/sbin/ifup eth0
sur la ligne de commande.
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.
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 [email protected] :
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.
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.
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
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
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.
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
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 :
/etc/resolv.conf
mv /etc/resolv.conf /etc/resolv.conf.OLD
/etc/dhcpc/
n'existe pas, créez le
mkdir /etc/dhcpc
/etc/dhcpc/resolv.conf
vers
/etc/resolv.conf
ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf
[email protected]
, 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
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
if [ ! -f
/var/run/dhcp-wait-${DEVICE}.pid ];
.
Maintenant, admirez le résultat! :-)
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
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.
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 [email protected]
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.
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.
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/
.
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 [email protected]
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.
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.
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.
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
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
[email protected], 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; }
dhclient.conf
fait ressembler votre client
DHCP à un client Windows 95.
Il existe plusieurs serveurs DHCP pour les systèmes 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 dernière version est la 2.0(dont l'utilisation est conseillée pour le commun des mortels), mais la 3.0 est en bêta-test. Vous pouvez les obtenir depuis ftp://ftp.isc.org/isc/dhcp/.
Certaines distributions fournissent un paquetage dhcpd
précompilé; si
vous l'avez obtenu de cette manière, vous pouvez ignorer ce qui suit.
Après avoir téléchargé le serveur, décompactez le. Ensuite, placez vous dans le répertoire de la distribution et tapez :
./configure
La configuration des différents paramètres va prendre quelques temps. Une fois
qu'elle est terminée, tapez :
make
puis
make install
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
Ensuite, ajoutez une route pour 255.255.255.255. D'après 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 réseau (ici
192.5.5.223). Ceci constitue une violation du protocole DHCP et, alors que
beaucoup de clients DHCP ignorent ce problème, certains (par exemple tous ceux
de Microsoft) le remarquent. Les clients qui ont ce problème 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
désigne bien sûr l'interface réseau que vous utilisez. Si vous en
utilisez une autre, faites les changements nécessaires.
Maintenant, il vous faut configurer DHCPd. Pour cela, vous allez devoir créer
ou éditer /etc/dhcpd.conf
. Il existe une interface graphique pour
configurer /etc/dhcpd.conf
sous KDE (
http://www.kde.org/),
appelée kcmdhcpd
, très 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 préférez configurer dhcpd
à la main, suivez les instructions
ci-dessous.
La plupart du temps, vous voudrez assigner des adresses IP aléatoirement. Cela peut se faire de la façon 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; }
Si vous devez spécifier 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 spécifiques en utilisant l'adresse ethernet du client :
host haagen { hardware ethernet 08:00:2b:4c:59:23; fixed-address 192.168.1.222; }
Vous pouvez aussi mélanger ces différentes possibilités, 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.
Il ne reste qu'une chose à faire avant de démarrer le serveur. La plupart des
installations de DHCPd ne créent pas par défaut 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
créer, tapez :
touch /var/state/dhcp/dhcpd.leases
sur la ligne de commandes. Cela va créer un fichier vide (de taille
nulle). Certaines vieilles versions de dhcpd
2.0 plaçaient ce fichier en
/etc/dhcpd.leases
. Vous n'avez pas à y changer quoi que ce soit; c'est
dhcpd
qui le manipulera lui-même. 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 démarrage) :
/usr/sbin/dhcpd
Cette commande invoquera dhcpd
sur l'interface eth0. Pour l'utiliser sur
une autre interface, précisez-le simplement sur la ligne de commande, par
exemple :
/usr/sbin/dhcpd eth1
Pour vérifier que tout fonctionne correctement, vous devriez d'abord activer
le mode de débogage 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 débogage. 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 démarrage,
rajoutez dhcpd
par exemple au fichier /etc/rc.d/rc.local
.
Le numéro 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.