Le protocole DHCP
08/02/2005
 Christian CALECA 
Liste des cours

Serveur DHCP

Accueil ] [ Protocole DHCP ] [ Serveur DHCP ] [ Les clients DHCP ] [ Analyse de trames ] [ Le luxe du luxe. ]


Topologie du réseau

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

topologie

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 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 Mandrake, ça se fait très simplement en installant les paquetages dhcp-common et dhcp-server. Dans la version 9 de Mandrake, vous disposez de la version 3.0 du serveur. Il y a un seul fichier de configuration : /etc/dhcpd.conf, que vous pourrez 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

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 Mandrake, il faut éditer le script /etc/rc.d/init.d/dhcpd. 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

# Les trois lignes qui suivent doivent être présentes
# même si pour le moment, elles ne nous servent pas.
# Elles concernent la mise à jour dynamique du DNS
# que nous verrons plus tard
ddns-domainname "maison.mrs";
ddns-update-style none;
ddns-updates off;

# tous les clients sont acceptés, même si l'on ne connaît pas
# leur adresse MAC.
allow unknown-clients;

# Durée de vie du bail
max-lease-time 3600;
default-lease-time 3600;

# Les options que l'on va refiler aux clients
option domain-name-servers 192.168.0.253;
option domain-name "maison.mrs";
option routers 192.168.0.253;

# La définition du seul "sous-réseau" dont nous disposons
# Avec la plage d'IP à distribuer.
subnet 192.168.0.0 netmask 255.255.255.0 {
	range 192.168.0.1 192.168.0.9;
}

Cette configuration simplissime va suffire à nos besoins, du moins dans un premier temps.

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 de fonctionner dans notre contexte. Il nous suffit de lancer ou de relancer le serveur :

/etc/init.d/dhcpd restart

Et ça devrait fonctionner.


Précédente ] [ Accueil ] [ Suivante ]