Vous êtes sur la page 1sur 33

DHCP

Dynamic Host
Configuration Protocol
I. Définition du terme DHCP
Il s'agit d'un protocole qui permet à
un ordinateur qui se connecte sur un
réseau d'obtenir dynamiquement
(c'est-à-dire sans intervention
particulière) sa configuration réseau.
Le but principal étant la
simplification de l'administration d'un
réseau.
II. Fonctionnement du protocole DHCP
Il faut dans un premier temps au
moins un serveur DHCP qui distribue
des adresses IP. Cette machine va
servir de base pour toutes les
requêtes DHCP, aussi elle doit avoir
une adresse IP fixe.
NB: Dans un réseau, on peut donc
n'avoir qu'une seule machine avec
adresse IP fixe le serveur DHCP.
1. les requêtes DHCP
En fait, il existe plusieurs types de paquets DHCP susceptibles d'être
émis soit par le client pour le ou les serveurs, soit par le serveur DHCP
vers un client :
• DHCPDISCOVER découvrir (pour localiser les serveurs DHCP disponibles)
• DHCPOFFER proposer (réponse du serveur à un paquet DHCPDISCOVER, qui
contient les premiers paramètres)
• DHCPREQUEST (requête diverse du client pour par exemple prolonger son bail)
• DHCPACK (réponse du serveur qui contient des paramètres et l'adresse IP du
client)
• DHCPNAK (réponse du serveur pour signaler au le client que son bail est échu ou si
le client annonce une mauvaise configuration réseau)
• DHCPDECLINE refuser (le client annonce au serveur que l'adresse est déjà utilisée)
• DHCPRELEASE libérer (le client libère son adresse IP)
• DHCPINFORM informer (le client demande des paramètres locaux, il a déjà son
adresse IP)
2. bail
Pour des raisons d'optimisation des ressources
réseau, les adresses IP sont délivrées avec une date
de début et une date de fin de validité. C'est ce qu'on
appel un bail.
Un client qui voit son bail arriver à terme peut
demander au serveur une prolongation du bail par un
DHCPREQUEST (?). De même, lorsque le serveur
verra un bail arrivé à terme, il émettra un paquet
DHCPNAK(?) pour demander au client s'il veut
prolonger son bail. Si le serveur ne reçoit pas de
réponse valide, il rend disponible l'adresse IP.
3. Scénario de fonctionnement
3.1- Demande de bail IP
• Le processus de création de bail commence lorsqu’un ordinateur
client démarre ou initialise le protocole TCP/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
l’adresses IP de ordinateur client pour que les serveurs DHCP
puissent déterminer le client qui a envoyé la demande.
3.2- 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.
3.3- 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.
3.4- 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 …..).
3.5- 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.
3.6- 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
d'un serveur
DHCP
NB : Les mots-clés sont sensibles à la casse
Il existe deux types de déclarations
dans le fichier de configuration :

• Paramètres — Les paramètres règlent l'exécution d'une


tâche, la façon dont une tâche est exécutée ou les options
de configuration réseau à envoyer au client.

• Déclarations — Les déclarations décrivent la topologie du


réseau, les clients ; elles fournissent des adresses pour les
clients ou appliquent un groupe de paramètres à un
groupe de déclarations.
• Les paramètres qui commencent avec le mot-clé
option sont considérés comme des options. Ces
options configurent les options DHCP alors que les
paramètres eux, configurent des valeurs qui ne sont
pas facultatives ou contrôlent le comportement du
serveur DHCP.
• Les paramètres (y compris les options) déclarés avant
une section entre accolades ( { } ) sont considérés
comme des paramètres globaux. Ceux-ci s'appliquent à
toutes les sections se trouvant en dessous.
• Si vous modifiez le fichier de configuration, les
modifications ne prendront pas effet tant que vous
n'aurez pas redémarré le démon DHCP à l'aide de la
commande service dhcpd restart .
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
/etc/dhcpd.conf
La configuration de base pour un réseau local
# Fichier de configuration du serveur DHCPd : /etc/dhcpd.conf
# Durée par défaut du bail IP en secondes (0 = infini)
default-lease-time 3600;
# Durée maximale de bail IP possible en secondes
# (Si le client demande une durée de bail plus importante)
max-lease-time 7200;
# Demande de non-prise en charge du DNS dynamique
ddns-update-style none;
# Déclaration de sous-réseau 10.0.0.0
# Il faut obligatoirement déclarer chaque sous-réseau auxquels le
# serveur DHCP sera connecté
subnet 10.0.0.0 netmask 255.0.0.0 {
# Masque de sous-réseau du client
option subnet-mask 255.0.0.0;
# Adresse de broadcast préférentielle
option broadcast-address 10.255.255.255;
# Nom de domaine auxquels appartiendront les clients
option domain-name "unix.ebc-informatique.com";
# Adresses IP des serveurs de noms par ordre croissant de préférence
option domain-name-servers 10.0.0.1;
# Adresses IP des routeurs par ordre croissant de préférence
option routers 10.0.0.1;
# Adresses IP des serveurs WINS par ordre croissant de préférence
option netbios-name-servers 10.0.0.1;
# Etendue des adresses IP distribuables
range 10.0.100.2 10.0.100.254;
range 10.0.101.2 10.0.101.254;
}
# Affectation d’une adresse IP fixe à un client
host Directeur{
# Adresse ETHERNET de la carte réseau du client
hardware ethernet 08:00:2b:4c:59:23;
# Adresse IP associée
fixed-address 192.168.1.222;
}
Déclaration de sous-réseau
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option domain-name "ista.com";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
range 192.168.1.10 192.168.1.100;
}
Déclaration de réseau partagé
Tous les sous-réseaux partageant le même réseau physique doivent
être déclarés dans une déclaration shared-network.
shared-network name {
option domain-name "test.ista.com";
option domain-name-servers ns1.ista.com, ns2.ista.com;
option routers 192.168.0.254;
subnet 192.168.1.0 netmask 255.255.252.0 {
range 192.168.1.1 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.252.0 {
range 192.168.2.1 192.168.2.254;
}
}
Déclaration de groupe
la déclaration group est utilisée pour appliquer des paramètres globaux à un groupe
de déclarations. Vous pouvez, par exemple, regrouper des réseaux partagés, des sous-
réseaux et des hôtes.
group {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option domain-name "ista.com";
option domain-name-servers 192.168.1.1;
option time-offset -18000; # Eastern Standard Time
host tmsir{
option host-name " tmsir.ista.com";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}
host tri {
option host-name "tri.ista.com";
hardware ethernet 00:A1:DD:74:C3:F2;
fixed-address 192.168.1.6;
}
}
Base de données d'attribution

Sur le serveur DHCP, le fichier /var/lib/dhcpd/dhcpd.leases


stocke la base de données d'attribution client DHCP. Ne
modifiez pas ce fichier. Les informations d'attribution DHCP
pour toutes les adresses IP récemment attribuées sont
automatiquement stockées dans cette base de données.
Ces informations incluent :
• la durée de l'attribution,
• le destinataire de l'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.
Restaurer ses fichiers de configuration

• Si vous avez précédemment sauvegardé vos


fichiers de configuration DHCP, vous pouvez
les restaurez en déplaçant le fichier «
dhcpd.leases » dans le répertoire que le
programme vous a indiqué précédemment
ainsi qu’en déplacant le fichier « dhcpd.conf
» dans /etc/.
Le client ne trouve pas le serveur DHCP

• Vérifions d’abord que votre noyau dispose du


support multicast :

• Si cela ne fonctionne toujours pas, il faut ajouter


une route pour le BROADCAST.
Exécutez la commande suivante :
# route add -host 255.255.255.255 dev eth0
Configuration du client sous Windows
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
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.
• Test au niveau du client Linux
– Après toute configuration faite au niveau du serveur et du
client Linux, lancez la commande ifconfig.

• 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.
Une configuration avec prise en charge du
DNS dynamique
La machine qui supporte le serveur DHCP est également le
serveur DNS du réseau. Dans la configuration suivante, le
serveur DHCP côtoie le serveur DNS maître du domaine «
ebc-informatique.com. ». Ce serveur comprend deux
interfaces réseaux : eth0 qui est connecté au réseau « ebc-
informatique.com. » (adresses IP 172.16.x.x) et eth1 qui est
connecté au sous-réseau dynamique « unix.ebc-
informatique.com. » (adresses IP 10.x.x.x). Le serveur DHCP,
cette fois-ci à l’écoute de la seule interface eth0, devra donc
informer le serveur DNS de l’arrivée d’un client sur le sous-
réseau 10.0.0.0 afin que celui-ci modifie les
correspondances DNS en conséquences.
# Fichier de configuration du serveur DHCPd : /etc/dhcpd.conf
default-lease-time 3600;
max-lease-time 7200;
ddns-update-style ad-hoc; # Demande de prise en charge du DNS dynamique
# Déclaration d’une clé de protection pour les MAJ du DNS
key DHCP_UPDATER { # (ATTENTION : il faudra configurer le serveur DNS en conséquence)
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret pRP5FapFoJ95JEL06sv4PQ==;
}
# Déclaration d’informations DNS spécifiques à certaines zones (Comme par exemple
la clé de MAJ à transmettre)
zone ebc-informatique.com. {
primary 127.0.0.1; # Serveur primaire du domaine
key DHCP_UPDATER; # Clé de cryptage
}
zone 10.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
subnet 10.0.0.0 netmask 255.0.0.0 { # Déclaration de sous-réseau 10.0.0.0
option subnet-mask 255.0.0.0; # Masque de sous-réseau du client
option broadcast-address 10.255.255.255; # Adresse de broadcast préférentielle
option domain-name "unix.ebc-informatique.com"; # Nom de domaine auxquels
appartiendront les clients
option domain-name-servers 10.0.0.1; # Adresses IP des serveurs de noms par ordre
croissant de préférence
option routers 10.0.0.1; # Adresses IP des routeurs par ordre croissant de préférence
option netbios-name-servers 10.0.0.1; # Adresses IP des serveurs WINS par ordre
croissant de préférence
# Etendue des adresses IP distribuables
range 10.0.100.2 10.0.100.254;
range 10.0.101.2 10.0.101.254;
}
host patron { # Affectation d’une adresse IP fixe à un client
hardware ethernet 08:00:2b:4c:59:23; # Adresse ETHERNET de la carte réseau du
client
fixed-address 192.168.1.222; # Adresse IP associée
}

Vous aimerez peut-être aussi