Table des matières

Serveur DHCP

Topologie du réseau

Nous allons prendre une configuration simple, avec une machine GNU/Linux qui va cumuler plusieurs fonctions :

Topologie du réseau

Nous allons donc installer sur la passerelle un serveur DHCP. Le DNS est tout à fait optionnel, mais ce serait bien qu'il y soit, il peut même y être déjà, ça n'est absolument pas gênant. S'il n'y est pas encore, vous pourrez le rajouter par la suite.

Les fonctions de passerelle et de firewall ne sont pas non plus fondamentales, nous pourrions nous contenter d'un serveur GNU/Linux, non connecté au Net (mais qui peut le plus peut le moins).

Nous pourrions même ajouter un autre serveur au réseau local, chargé du DNS et du DHCP et ne laisser à la passerelle que les fonctions de routage et de firewall.

Installation du serveur DHCP

Sur Debian, ceci se fait très simplement en installant les paquetages dhcp3-common et dhcp3-server. Dans la version Lenny de Debian, nous disposons de la version 3.1.1 du serveur. Il y a un seul fichier de configuration : /etc/dhcp3/dhcpd.conf, que nous pourrons configurer avec un éditeur de texte, où à travers l'interface Webmin. Ce que nous aurons à faire est suffisamment simple pour pouvoir le faire à la main.

Configuration du serveur

Le principe

Comme nous l'avons vu plus haut, un serveur DHCP, en plus de fournir la configuration IP « de base » (Adresse et masque), peut aussi transmettre un nombre plus ou moins grand de paramètres supplémentaires. Nous aurons donc au moins deux choses à configurer :

Nous avons vu qu'un seul serveur DHCP pouvait être utilisé pour plusieurs réseaux logiques interconnectés, pourvu que les interconnexions disposent d'un agent de relais DHCP. Dans un tel cas, le serveur DHCP devra disposer d'au moins une étendue d'adresses IP par réseau logique dont il aura la charge.

En ce qui concerne les options, nous disposons d'une architecture hiérarchique :

Une configuration basique

Ce que nous voulons faire

Nous n'allons pas monter une usine à gaz, c'est inutile pour un petit réseau domestique et ça n'apporte rien de plus à la compréhension du protocole :

Note importante

Le « daemon » dhcpd écoute par défaut sur toutes les interfaces réseau actives sur le serveur. Ce n'est pas forcément souhaitable, c'est même assez souvent ennuyeux.

Fort heureusement, ce comportement par défaut peut être modifié, mais pas dans le fichier de configuration. Il faut utiliser un paramètre dans la ligne de commande qui va démarrer dhcpd.

Dans le cas de Debian Lenny, il faut éditer le fichier /etc/default/dhcp3-server. Il est bien documenté et vous trouverez aisément la variable INTERFACES qu'il faut initialiser avec le nom de la ou des interfaces qui doivent êtres écoutées. Dans notre exemple, nous aurons :

INTERFACES="eth0"

Ce que nous écrivons dans dhcpd.conf

# La ligne qui suit est nécessaire. Elle est en rapport avec
# la mise à jour dynamique du DNS, que nous n'utiliserons pas
# pour l'instant.
ddns-update-style none;

# Ce serveur fait autorité sur le réseau
authoritative;

# Les options globales
option time-servers 192.168.0.252;
option domain-name "maison.mrs";
max-lease-time 3600;
default-lease-time 3600;
option domain-name-servers 192.168.0.252;
option subnet-mask 255.255.255.0;
option routers 192.168.0.252;

# le réseau 192.168.0.0/24, avec la réserve d'adresses dynamiques
subnet 192.168.0.0 netmask 255.255.255.0 {
	range dynamic-bootp 192.168.0.64 192.168.0.127;
}

Cette configuration simplissime va suffire à nos besoins.

Dans ce fichier, il y a des directives, qui sont obligatoires :

Et des options qui seront dans la pratique, des paramètres de configuration optionnels. Ici :

Toutes les options qui figurent avant le paragraphe subnet 192.168.0.0 netmask 255.255.255.0 sont des options globales, il n'y a ici aucune option d'étendue (de sous-réseau) de définie.

Cette configuration doit nous permettre d'être efficient dans notre contexte. Il nous suffit de lancer ou de relancer le serveur :

/etc/init.d/dhcpd restart

Et ça devrait fonctionner.