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 stable est la 2.0, 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, 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
.