DHCP

Contributeurs

(SIO1-2017) Simon Lemelletier, Adrien Tanner
(SIO2-2019) Antoine Reux, Jessy Tranchant

Pour l'installation et la configuration, voir la page suivante

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.