Vous êtes : Accueil / Tutoriaux / Serveur DHCP sous Linux

Serveur DHCP sous Linux

Rédigé le 05/04/2005 par Itax

Introduction

Installation et configuration d’un serveur DHCP sur Linux

Tutorial crée le 23 juin 2003 mis à jour le 23 juin 2003 par TitaX (webmaster@titaxium.com) pour www.admin-rezo.com

Niveau de connaissance : **
Compétences requises : commandes de base Linux, connaissance réseau IP et TCP.

I Qu’est ce que DHCP ?

Dynamic Host Control Protocol : Protocole qui permet de configurer les postes clients d’un réseau de façon automatique.
Le serveur DHCP dispose d'une plage d'adresses à distribuer aux machines du réseau. Lorsque l’attribution de l’adresse est faite il établi un bail.
Ce bail a une durée limitée dans le temps. Sur un réseau d'entreprise où l'on dispose largement d'assez d'adresses pour le nombre de postes et que ces derniers sont en service toute la journée, le bail peut être d'une semaine ou plus encore. Sur le câble, le bail était seulement d'une heure. Après expiration du bail, ou résiliation par le client, les informations concernant ce bail restent mémorisées dans la base de données du serveur pendant un certain temps. Bien que l'adresse IP soit disponible, elle ne sera pas attribuée en priorité à une autre machine.

Il y a deux possibilités de configurer des postes clients :
·Passer sur chaque machine du réseau et configurer manuellement l’ip, le masque de sous-réseau, les adresses DNS, et l’adresse de la passerelle. Ce mode de configuration est long et ne permet pas de faire des changements automatisés, ni de pouvoir incorporer de nouvelles machines automatique. De plus, il est necessaire de tenir à jour une base avec les adresses IP déjà attribués pour ne pas avoir a donner deux adresses ip identiques a deux machines differentes.
·Installer un serveur DHCP qui attribura de facon automatiser la configuration souaitée a tout les clients du réseau.

II Installation d’un serveur DHCP

L’installation peut se faire via le CD d’install de votre distribution (ex : Mandrake ou Red Hat) ou bien télécharger DHCPD en vous rendant ici -> ftp://ftp.isc.org/isc/dhcp/

III Configuration d’un serveur DHCP

Attention le Daemon du serveur DHCP va écouter par défault toutes les interfaces réseaux actives, il va falloir lui préciser l’interface que l’on veut qu’il écoute.
Pour cela il nous faut editer le script dhcpd (qui se trouve sur Mandrake par exemple ici -> /etc/rc.d/init.d/dhcpd ).
Editer la ligne comme suit :

# Define INTERFACES to limit which network interfaces dhcpd listens on.
# The default null value causes dhcpd to listen on all interfaces.
#INTERFACES="eth0"
INTERFACES=""
Modifier la dernière ligne en précisant le nom de l’interface qui doit être écouté.
Par exemple : INTERFACES="eth0"

Reste maintenant à configurer le fichier dhcpd.conf

Voici une configuration de base pour un petit réseau local

# Forcage de la mise à jour des IP fixes
update-static-leases on;
ddns-domainname "maison.mrs";
max-lease-time 3600;
default-lease-time 3600;

# Les clients du réseau seront tous reconnus mais
# si 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 qui seront transmisent aux clients
option domain-name-servers 192.168.0.254;
option domain-name "reseau.net";
option routers 192.168.0.254;

# La définition de la plage d'IP à distribuer.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.1 192.168.0.10;
}

Voici maintenant une configuration plus complexe avec une mise à jour automatique des DNS, et la possibilité d’attribuer des adresses ip fixe ( grace a l’adresse mac des machines) et des adresses ip dynamiques.

# méthode de mise à jour du DNS :
ddns-update-style interim;
# mise à jour autorisée
ddns-updates on;
# Forcage de la mise à jour par le serveur DHCP
ignore client-updates;
# Forcage de la mise à jour des IP fixes
update-static-leases on;
ddns-domainname "maison.mrs";
max-lease-time 3600;
default-lease-time 3600;

# Les options qui seront transmisent aux clients
option domain-name-servers 192.168.0.254;
option subnet-mask 255.255.255.0;
option routers 192.168.0.254;
# La définition de la plage d'IP à distribuer
subnet 192.168.0.0 netmask 255.255.255.0 {

# Définition des adresses dynamiques
range 192.168.0.64 192.168.0.127;

# définition des adresses ip fixe.
host moteyo {
hardware ethernet 17:03:4E:63:E9:F2;
fixed-address 192.168.0.150; } host chaudron {
hardware ethernet 12:25:31:F5:E2:98;
fixed-address 192.168.0.151; } host foz {
hardware ethernet 06:21:56:9A:C9:45;
fixed-address 192.168.0.152; } host titax {
hardware ethernet 01:56:42:8F:2B:4E;
fixed-address 192.168.0.153; }

}

# Pour la mise à jour dynamique du DNS local
allow unknown-clients;
zone reseau.net. {
primary 127.0.0.1; } zone 0.168.192.in-addr.arpa. {
primary 127.0.0.1; }

Une fois ces configurations effectuées il faut relancer le serveur DHCP avec la commande :
/etc/init.d/dhcpd restart.