Page suivante Page précédente Table des matières

5. Configurer un serveur DHCP

5.1 Un serveur DHCP pour UNIX

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

5.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'apparait pas, vous devez recompiler votre noyau avec le support multicast. Sur la plupart des systèmes, ça ne devrait pas être nécessaire.

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.

5.3 Options de DHCPd

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;
}

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 sera de 600 secondes si le client ne demande pas une durée différente, et de 7200 secondes au maximum. Le serveur va également "conseiller" au client d'utiliser le masque de sous-ré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é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;
}

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 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.

5.4 Démarrage du serveur

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.


Page suivante Page précédente Table des matières