Table des matières
DHCP
Contributeurs
(SIO1-2017) Simon Lemelletier, Adrien Tanner
(SIO2-2019) Antoine Reux, Jessy Tranchant
PRINCIPE
Le rôle du service DHCP (Dynamic Host Configuration Protocol) est de centraliser et gérer
l'allocation des informations de configuration du protocole TCP/IP en affectant
automatiquement des adresses IP aux ordinateurs clients du réseau.
Le protocole DHCP est une extension du protocole BOOTP (Bootstrap Protocol) basé sur le
protocole UDP/IP. BOOTP permet à un hôte de s’auto-configurer dynamiquement.
L'affectation d'une adresse IP peut être faite de deux manières différentes, manuellement ou automatiquement.
Configuration manuelle
L'administrateur du réseau affecte, à chaque machine cliente, une adresse IP différente,
un masque de sous-réseau et une passerelle par défaut. Ces informations doivent être
gérées de manière stricte afin d'éviter les erreurs ou les doublons.
De même, tout ordinateur déplacé doit avoir ses paramètres de configuration IP mis à
jour, ce qui induit une surcharge de travail pour l'administrateur.
Configuration automatique à l'aide de DHCP
Toutes les informations de configuration d'adresse IP sont automatiquement gérées par
le serveur DHCP, évitant ainsi les conflits réseau.
Les avantages pour l'Administrateur réseau sont multiples :
- Diminution voire suppression du risque de conflits d'adresses IP,
- Meilleure rentabilité de travail,
- Grande facilité de modification de la politique d'adressage globale,
- Possibilité de combiner les deux types de configuration dans le même réseau.
Mise en œuvre de DHCP
Le système nécessite au moins un ordinateur serveur DHCP dans le réseau (cela sous-entend
qu'il peut y avoir plusieurs serveurs DHCP).
Principe de fonctionnement
Au démarrage, un client DHCP s’adresse au serveur DHCP afin d’obtenir une adresse
ou un bail DHCP. Le processus s’effectue en quatre étapes :
1 - Demande de bail IP (DHCPDISCOVER) : le client initialise une version limitée du protocole TCP/IP et émet une demande d'adresse IP à l’encontre d’un serveur DHCP ; la communication s'effectue par le port UDP 67 du client vers le port UDP 68 du serveur. Le client ne connaissant pas l’adresse du ou des serveurs DHCP, il utilise 0.0.0.0. comme adresse source et 255.255.255.255 (broadcast) comme adresse de destination. Le message DHCPDISCOVER contenant l’adresse matérielle (MAC) et le nom de l’ordinateur demandeur, tout serveur DHCP peut identifier la machine à l’origine de la requête.
2 - Offre de bail (DHCPOFFER) : tous les serveurs DHCP possédant des adresses valides envoient une offre au client (message par diffusion) ; ce message, émis à partir du port UDP 67 du serveur vers le port UDP 68 du client, contient :
- l’adresse matérielle du client,
- une proposition d’adresse IP,
- un masque de sous-réseau,
- la durée du bail,
- l’adresse IP du serveur DHCP à l’origine de l’offre.
3 - Sélection du bail IP (DHCPREQUEST) : le client sélectionne l'adresse IP de la première offre qu'il reçoit et émet un message indiquant, à tous les serveurs DHCP, l’adresse du serveur sélectionné.
4 - Accusé de réception du bail IP (DHCPACK) : le serveur DHCP sélectionné répond au message par un accusé de réception et affecte les informations d'adressage au client.
Un ordinateur possédant plusieurs cartes réseau se verra attribuer une adresse IP unique
pour chaque carte.
DHCPNACK : c’est un accusé de réception négatif émis par un serveur DHCP à un
message DHCPREQUEST. Cela intervient lorsqu’un client tente d’obtenir le bail de
son ancienne adresse IP et celle-ci n’est plus disponible ou lorsque l’ordinateur a été
déplacé vers un autre sous-réseau.
Définition d'une étendue DHCP
Une fois le service Serveur DHCP installé et démarré sur un serveur, il est nécessaire
d'indiquer l'étendue des adresses IP pouvant être affectées à des ordinateurs clients.
Un serveur DHCP ne pourra affecter plus d'adresses que le nombre d'adresses comprises
dans l'étendue déclarée.
Si plusieurs serveurs DHCP sont configurés sur un même réseau, les étendues d'adresses
doivent être différentes afin qu'une même adresse ne puisse être affectée deux fois à
deux ordinateurs différents et ainsi occasionner des conflits d'adressage.
Les différents paramètres inhérents à l'étendue sont disponibles dans les Propriétés de
celle-ci.
Notion de bail
Le bail est la durée pour laquelle une adresse IP est réservée pour un client.
Cette durée peut être limitée (exprimée en jours/heures/minutes) ou illimitée.
Lorsque la moitié du temps du bail est écoulée, tout client tente de renouveler son bail
au moyen du message DHCPREQUEST adressé au serveur DHCP.
En cas de réponse favorable (DHCPACK), le serveur renouvelle le bail pour une nouvelle durée.
Si le serveur ne répond pas, le client garde la même adresse et attend que 87.5% de la
durée du bail soit écoulée pour diffuser un nouveau message DHCPREQUEST auprès de tout serveur DHCP. Le client peut se voir renouveler son bail par un autre serveur ou recevoir un DHCPNACK l’obligeant à réinitialiser sa configuration.
A chaque fin de bail ou réception d’un DHCPNACK, le client doit libérer son adresse et recommencer un processus de bail.
A chaque redémarrage, un client tente de renouveler le bail de son adresse IP. Si la fin
de son bail n'est pas atteinte, il reprend alors le processus à l'étape 3 (DHCPREQUEST)
pour garder la même adresse et obtenir ainsi un DHCPACK de la part du serveur.
Lors de l'arrêt de sa machine, un client ne libère pas son adresse, son bail est donc réservé pendant toute sa durée.
Options
Les options DHCP viennent compléter le paramétrage d'une étendue ; il est ainsi possible d'indiquer l'adresse d'un routeur, l'adresse d'un serveur DNS…
Chaque option est reconnue par un code, un type de donnée et une valeur. La longueur du message est fixe ou variable et sa valeur est indiquée dans ce message.
Nom de l'option | Code | Message |
---|---|---|
PAD | 0 | Tous les messages |
Masque de sous-réseau | 1 | Tous les messages |
Routeur | 3 | Demandé par le client |
Serveur DNS | 6 | Demandé par le client |
Nom de l'hôte | 12 | Tous les messages |
Nom de domaine DNS | 15 | Demandé par le client |
Découvrir les routeurs | 31 | Demandé par le client |
Option d'itinéraire statique | 33 | Demandé par le client |
Informations spécifiques au fournisseur | 43 | Tous les messages |
Nom du serveur WINS | 44 | Demandé par le client |
Type de nœud pour la résolution de nom Netbios | 46 | Demandé par le client |
ID de l'étendue Netbios | 47 | Demandé par le client |
Adresse demandée | 50 | Tous les messages |
Durée du bail | 51 | Tous les messages |
Type de message DHCP | 53 | Tous les messages |
Identificateur du serveur | 54 | Tous les messages |
Liste des paramètres demandés | 55 | Tous les messages |
Durée T1 | 58 | Tous les messages |
Durée T2 | 59 | Tous les messages |
Identificateur client | 61 | Tous les messages |
Mise à jour DNS dynamique | 81 | Tous les messages |
Itinéraires statiques sans classe | 121 | Demandé par le client |
Itinéraires statiques sans classe | 249 | Demandé par le client |
Fin | 255 | Tous les messages |
Liaison avec DNS
DNS est statique, c'est-à-dire que toute modification apportée au domaine doit être répercutée manuellement dans le fichier de base de données de la zone sur le serveur de noms principal.
DDNS est le système Dynamique de DNS où les serveurs de noms et les clients mettent à jour automatiquement les fichiers de base de données de la zone.
DDNS agit en relation avec DHCP. A chaque nouvelle affectation d'adresse, le service DHCP
en informe le serveur de noms DNS. De même, lors de l'expiration d'un bail, la référence de l'adresse libérée est supprimée de la base de données de la zone DNS.
La mise à jour de DNS par DHCP est paramétrable dans les Propriétés de l'étendue.
Réservation d'adresse
Certains matériels nécessitent une adresse fixe. Pour cela, la réservation d'adresse permet d'assigner une adresse IP fixe à un matériel en fonction de son adresse physique (MAC).
Relai
Par défaut, le serveur DHCP et les clients doivent se trouver dans le même réseau ; cela
s'explique par le fait qu'un routeur bloque les messages de diffusion.
Néanmoins, il peut être nécessaire pour un client d'accéder à un serveur DHCP ne se trouvant pas dans le même réseau, cela évite ainsi de multiplier les serveurs.
La solution la plus directe est d'activer le routage des messages de diffusion de type BOOTP (UDP 67 et 68) sur le routeur reliant les réseaux du client et du serveur.
Le problème est que certains routeurs ne sont pas compatibles avec cette solution ; il est donc nécessaire de passer par un agent relai DHCP.
Cet agent agit comme un proxy entre le client et le serveur ; il intercepte toutes les demandes DHCP émises en diffusion et les transmet au serveur en monodiffusion.
INSTALLATION WINDOWS
Le paramétrage d'un serveur DHCP est possible aussi bien au travers de l'interface graphique que par commandes clavier.
Il suffit d'utiliser un éditeur de scripts (netsh par exemple).
- Création d'une étendue
netsh dhcp server <adresseserveur> add scope <adresseréseau> <masque> <nométendue>
netsh dhcp server 172.16.10.1 add scope 172.16.10.0 255.255.255.0 Toutissus
- Définition des adresses de l'étendue
netsh dhcp server <adresseserveur> scope <adresseréseau> add iprange <adressedébut> <adressefin>
netsh dhcp server 172.16.10.1 scope 172.16.10.0 add iprange 172.16.10.30 172.16.10.50
- Définition du bail
netsh dhcp server <adresseserveur> scope <adresseréseau> optionvalue <codeoption> dword <valeur>
netsh dhcp server 172.16.10.1 scope 172.16.10.0 optionvalue 051 dword "3600"
Lorque un problème survient sur le réseau, il arrive que la réponse du serveur dhcp soit trop longue ; dans ce cas, le protocole APIPA (Automatic Private Internet Protocol Addressing) prend le relai sur la machine cliente pour attribuer localement une adresse de type 169.254.x.x
Commandes
- à partir du client, libère l'adresse IP
Ipconfig /release
- à partir du client, demande une adresse IP au serveur
Ipconfig /renew
INSTALLATION LINUX
Installation du service DHCP sur Debian :
apt-get install isc-dhcp-server
Le code d'erreur qui s'affiche à la fin d'installation est normal car le service n'est pas encore configuré.
Configuration
La configuration se passe dans le fichier /etc/dhcp/dhcpd.conf.
On pourra alors configurer :
- la plage
- la passerelle distribuée
- les serveurs DNS
- de multiples autres options
Exemple
Voici un passage du fichier :
subnet 172.27.0.0 netmask 255.255.0.0 { #l'adresse réseau et son masque option routers 172.27.0.254; #l'adresse du routeur range 172.27.0.1 172.27.0.127; #la plage d'adresse que le DHCP distribue option domain-name-servers 172.20.0.6, 172.20.0.5; #l'adresse des serveurs DNS }
Une fois la configuration terminée, il faut redémarrer le service DHCP avec la commande
service isc-dhcp-server restart
.
Si le statut est “Failed”, il faut supprimer le fichier “dhcpd.pid” à l'arborescence “/etc/default/”. Refaire la démarche de test (redémarrer, vérifier le statut…).