Service DHCP sous Linux
0
commentaires
1. Introduction
DHCP (Dynamic Host
Configuration Protocol) est un protocole réseau permettant d'assigner
automatiquement des informations TCP/IP aux ordinateurs clients. Chaque client
DHCP se connecte au serveur central DHCP, lequel renvoie la configuration
réseau du client, y compris l'adresse IP, le masque de sous réseau, les
adresses de la passerelle et des serveurs DNS…
Ce service permet de
s'affranchir des reconfigurations manuelles des postes, suite à des
déménagements ou des modifications d'architecture.
Les nœuds critiques du réseau
(serveur de nom primaire et secondaire, passerelle par défaut) doivent avoir
des adresses IP statiques.
Avantage:
·
il n'y a pas à gérer poste
par poste les adresses dans le réseau. Chaque nœud vient chercher une adresse
quand il en a besoin. Il libère cette adresse quand la session se termine.
·
si un paramètre change au
niveau du réseau, comme, par exemple l'adresse de la passerelle par défaut, il
suffit de changer la valeur du paramètre au niveau du serveur DHCP.
·
cela permet, dans certains
cas de pouvoir adresser plus de postes qu'il n'y a d'adresses IP disponibles
(cas d’un Provider)
Inconvénient:
·
Le client utilise des
trames de diffusion pour rechercher un serveur DHCP sur le réseau. cela charge
le réseau. Si vous avez une entreprise avec plusieurs centaines de personnes
qui ouvrent leur session le matin à 8h, il peut s'en suivre de graves goulets
d'étranglement sur le réseau.
2.
Fonctionnement du protocole DHCP
Chaque fois qu’un client DHCP
démarre, il demande une adresse IP au serveur DHCP. Lorsque celui-ci reçoit la
demande, il sélectionne une adresse IP dans une plage d’adressage définie dans
sa base de données. Le serveur DHCP propose cette adresse au client DHCP. Si le
client accepte l’adresse, le serveur DHCP loue l’adresse IP au client pour une
période donnée. La durée par défaut d’un bail d’adresse est de huit jours, mais
sa durée peut être configurée. Le client utilise ensuite cette adresse pour
accéder au réseau.
à Procédure de création de bail DHCP
L e protocole
DHCP utilise un processus en quatre étapes pour louer des informations
d’adressage IP aux clients DHCP : Demande de bail IP, proposition de bail
IP, choix du bail IP et accusé de réception du bail IP.
·
Demande de bail IP
Le processus de création de bail
commence lorsqu’un ordinateur client démarre
ou initialise le protocole TC/IP
pour la première fois. Il commence également lorsqu’un ordinateur client tente de renouveler son bail et est rejeté (déplacement d’un client vers un autre sous
réseaux).
Le client diffuse un message DHCPDISCOVER pour les informations
d’adressage IP. Le client ne dispose pas encore d’adresse IP, Il utilise donc 0.0.0.0 comme adresse source. Étant
donné que le client ne connaît pas l’adresse IP du serveur DHCP, il utilise 255.255.255.255
comme adresse de destination. Le massage est diffusé à l’ensemble des sous
réseaux.
Le message de demande contient
également l’adresse MAC et le nom de
l’ordinateur client pour que les serveurs DHCP puissent déterminer le
client qui a envoyé la demande.
·
Proposition de
bail IP
Tous les serveurs DHCP qui
disposent d’une adresse IP valide pour le segment de réseau auquel le client
est connecté répondent avec un message DHCPOFFER,
qui contient les informations suivantes :
ü
L’adresse matérielle du client
ü
Une adresse IP proposée
ü
Un masque de sous réseau
ü
La durée du bail
ü
l’adresse IP du serveur DHCP qui fait la
proposition
Chaque serveur DHCP qui
répond réserve l’adresse IP proposée pour ne pas la proposer à un autre client
avant l’acceptation par le client ayant fait la demande.
Le client DHCP attend l’offre pendant une seconde. S’il ne la
reçoit pas, il rediffuse la demande quatre fois selon des intervalles de 2,4,8 et 16 secondes, plus une durée
aléatoire comprise entre 0 et 1000
millisecondes.
Si le client ne reçoit
pas d’offre après les quatre demandes, il utilise une adresse IP de la plage
réservée comprise entre 169.254.0.1 et
169.254.255.254. Le client DHCP continue à rechercher un serveur DHCP
toutes les cinq minutes.
Lorsqu’un serveur
DHCP est enfin disponible, les clients
reçoivent des adresses IP valides. Ce qui leur permet de communiquer avec des
hôtes internes et externes.
·
Choix du bail IP
Le client DHCP
répond à la première offre qu’il reçoit en diffusant
un message DHCPREQUEST pour
l’accepter. Celui-ci contient l’identification du serveur dont il a accepté
l’offre. Tous les autres serveurs DHCP
retirent alors leur offre et conservent leurs adresses IP pour d’autres
demandes de bail IP.
·
Accusé
de réception du bail IP
Le
serveur DHCP qui émet l’acceptation de l’offre envoie un message d’accusé de
réception DHCPACK pour notifier le
bail. Ce massage contient un bail valide
pour l’adresse IP et d’autres informations de configuration (passerelle par
défaut, serveur DNS …..).
à
Procédure de
renouvellement du bail
A intervalles fixes, un client DHCP tente de
renouveler son bail afin de s’assurer que se informations de configuration sont
à jour.
Renouvellement automatique d’un bail
Lorsqu'un client redémarre, il tente d'obtenir un bail
pour la même adresse avec le serveur DHCP d'origine, en émettant un DHCPREQUEST. Si la tentative se solde
par un échec, le client continue à utiliser la même adresse IP s'il lui reste
du temps sur son bail.
Un client DHCP tente automatiquement
de renouveler son bail lorsque 50%
sa durée a expiré. Pour renouveler un bail, le client DHCP envoie un message DHCPREQUEST
directement au serveur DHCP duquel il a obtenu ce bail. Si le serveur DHCP est
disponible il envoie un DHCPACK avec
la nouvelle durée et éventuellement les mises à jour des paramètres de
configuration.
Si le serveur DHCP n’est pas
disponible, le client continue à utiliser ses paramètres de configuration
actuels. Il diffuse ensuite un message DHCPDISCOVER pour mettre à
jour le bail de son adresse lorsque 87,5% de la durée a expiré. A
ce stade, le client DHCP accepte un bail émis par importe quel serveur DHCP.
Si
le bail expire, le client doit immédiatement cesser d'utiliser l'adresse IP en cours.
Le client DHCP commence alors le processus de création d’un bail DHCP en vue
d’obtenir une nouvelle adresse IP.
Renouvellement
manuel d’un bail
Vous pouvez renouveler
manuellement un bail IP si vous devez mettre à jour immédiatement les
informations de configuration DHCP. Par exemple, si vous souhaitez que les
clients DHCP obtiennent immédiatement d’un serveur DHCP l’adresse d’un nouveau
routeur, renouvelez le bail à partir du client pour changer cette
configuration.
Pour renouveler le bail manuellement,
utilisez les commandes :
# dhclient -r eth0
Demande au client DHCP d'abandonner
l'adresse IP utilisée par l'interface réseau. (Sous Windows utilisez la
commande ipconfig /release)
# dhclient eth0
Provoque l'émission d'une demande de
renouvellement du bail par le client DHCP. (Sous Windows utilisez la commande ipconfig /renew).
à
Configuration du
service DHCP sur un réseau routé
Les trames arp, bootp ne traversent
pas les routeurs. Sur un réseau segmenté par des routeurs il est donc
impossible de servir tous les segments avec le même serveur DHCP. Pour
configurer les fonctionnalités DHCP dans un environnement de réseau routé, vous
avez les trois possibilités suivantes :
·
Mettre un serveur DHCP sur chaque segment.
Cette méthode fournit les fonctionnalités DHCP à chaque sous réseau. Cependant,
elle requiert de nombreuses tâches administratives liées au matériel supplémentaire.
De plus, vous devez configurer au moins deux
serveurs DHCP pour chaque segment pour la tolérance de pannes.
·
Configurer un routeur conforme à la RFC 1542 pour l’envoi des messages DHCP
entre les sous-réseaux. Dans ce cas le retour transmet d’une manière sélective
les diffusions DHCP à un autre sous-réseau, mais il n’envoie pas les autres
messages de diffusion. Cette méthode est préférable par rapport à la première
toute fois elle peut compliquer la
configuration du routeur, et la communication DHCP entre plusieurs
sous-réseaux est lente.
·
Configurer d’un agent de relais DHCP sur chaque
sous-réseau. Un agent relais DHCP relaie les messages DHCP échangés entre un
client et un serveur DHCP situés sur des sous-réseaux différents. L'agent relais
doit connaître l'adresse du serveur DHCP mais ne peut pas être lui-même client DHCP. La configuration d’un agent
de relais est plus facile que la configuration des autres options, et limite la
diffusion au sous-réseau ou il est installé.
Le serveur DHCP et l’agent de relais DHCP doivent avoir des adresses IP statiques. Le dialogue
traverse le routeur et se fait en unicast.
Dialogue client DHCP,
agent de relai DHCP et serveur DHCP
Après avoir envoyé une trame de
broadcast, le client DHCP dialogue avec l'agent de relai DHCP en unicast (1).
L'agent demande une adresse au serveur DHCP dont il connaît l'adresse (2). Le
serveur retourne à l'agent une adresse (3) qui est donnée au client DHCP par
l'agent (4).
3.
Mise en place d’un serveur DHCP
La configuration d’un serveur DHCP consiste à créer 2 fichiers:
·
/etc/dhcpd.conf, ce fichier sert à la configuration du
serveur (plage d'adresses, paramètres à distribuer …)
·
/var/lib/dhcpd/dhcpd.leases,
ce fichier va servir à l'inscription des clients. Chaque client DHCP,
génère l'écriture d'un enregistrement dans ce fichier. Cela permet le suivi (et
les statistiques) de l'activité du serveur.
3.1 Arrêt et démarrage de DHCP
Après
configuration du serveur DHCP il est nécessaire de redémarrer le démon
dhcpd pour qu’il prenne en compte toutes les modifications qu’on a faites
au niveau du fichier dhcpd.conf :
# service dhcpd
stop|start| restart
3.2 Le fichier /etc/dhcpd.conf
Dans un fichier /etc/dhcpd.conf
simple, il y a des options globales pour tous les clients et une plage
d’adresse IP qui leur est réservée.
·
Exemple de fichier /etc/dhcpd.conf :
- Attribution
statique des adresses IP
Il est nécessaire, parfois,
d’attribué toujours la même adresse IP à certains équipements réseau, comme par
exemple des serveurs de fichiers ou des imprimantes. L’extrait suivant du
fichier /etc/dhcpd.conf, présente un exemple d’attribution d’adresse statique.
- Mise à jour du DNS
Deux schémas de mise à jour du DNS
sont actuellement mis en place :
·
le mode de mise à jour DNS ad-hoc
·
le mode de mise à jour rapide interaction DHCP-DNS par intérim.
Le serveur DHCP doit être configuré
de façon à utiliser l'un de ces deux schémas. La version 3.0b2pl11 et la
version précédente utilisaient le mode ad-hoc, qui a cependant été abandonné.
Si vous souhaitez conserver le même comportement, ajoutez la ligne suivante en
haut du fichier de configuration:
ddns-update-style
ad-hoc;
Pour utiliser le deuxième mode,
ajoutez la ligne suivante en haut du fichier de configuration:
ddns-update-style
interim;
Consultez la page de manuel relative
à /etc/dhcpd.conf pour obtenir de plus détails sur les différents modes.
- Groupe
Comme l'illustre l’exemple suivant,
l’utilisation de groupe permet d’appliquer des paramètres globaux à un groupe
de déclarations.
3.3 Le fichier /var/lib/dhcpd/dhcpd.leases
Le fichier /var/lib/dhcpd/dhcpd.leases, qui ce trouve
sur le serveur DHCP stocke les adresses IP attribuer aux clients DHCP. Les
informations contenues dans ce fichier sont : la durée de l'attribution, le
destinataire de l'attribution d'adresse IP, les dates de début et de fin pour l'attribution
et l'adresse MAC de la carte d'interface réseau qui a été utilisée pour
l'attribution.
Toutes les heures que l’on retrouve dans ce fichier
sont des heures (GMT), et non pas des heures locales.
# more /var/lib/dhcpd/dhcpd.leases
lease 192.168.1.10 {
starts 1 2008/11/14 18:33:45;
ends 1 2008/11/14 18:34:22;
hardware ethernet 00:40:33:2d:b5:dd;
uid 01:00:40:33:2d:b5:dd;
client-hostname "CHA100";
}
On distingue les informations suivantes (Début du
bail, Fin du bail, adresse MAC du client, le nom d'hôte du client. Attention ce
nom est différent du nom netbios utilisé sur les réseaux Microsoft.
4.
Configuration des clients DHCP
4.1 Configuration
du client sous Windows
Pour configurer un
client Windows cliquez avec le bouton
droit sur « favoris réseau », puis avec le bouton droit sur « connexion au réseau local » puis cliquez
sur « Protocole Internet (TCP/IP) » et on coche
« Obtenir une adresse IP automatiquement».
4.2 Configuration du client sous Linux
Pour configurer
manuellement un client DHCP, vous devez modifier le fichier
/etc/sysconfig/network afin d'activer la mise en réseau. Ce fichier doit
contenir la ligne suivante:
NETWORKING=yes
Les fichiers
paramétrant les périphériques réseau doivent aussi être modifiés. Par exemple
pour activer le client DHCP de l’interface eth0, le fichier
/etc/sysconfig/network-scripts/ifcfg-eth0 doit contenir les lignes ci-dessous:
La configuration de la carte est
terminée, vous pouvez tester en relançant le service réseau :
# service network restart
5.
Test du fonctionnement du serveur DHCP
Le test du bon
fonctionnement du serveur DHCP consiste à vérifier si les clients arrivent à
communiquer avec le serveur et à obtenir des adresses IP de la plage que celui
ci fournie.
5.1 Test
au niveau du client Linux
Après toute configuration faite au niveau du
serveur et du client Linux, lancez la commande ifconfig.
5.2 Test
au niveau du client sous Windows
Pour
vérifier si le client Windows a récupéré une adresse IP du serveur DHCP lancez
la commande ipconfig /all à partir de l’invite de commandes.