Réseaux et Fondamentaux

DHCP : fonctionnement et attribution des adresses IP

DHCP distribue automatiquement adresses IP, passerelles et serveurs DNS. Comprendre l'échange DORA, la durée des baux et le relais entre VLAN permet de résoudre la plupart des pannes d'adressage.

Échange DHCP en quatre étapes Discover, Offer, Request et Acknowledge entre un client et un serveur

Configurer manuellement l'adresse IP de chaque poste est source d'erreurs et de conflits. Le protocole DHCP (Dynamic Host Configuration Protocol), défini par la RFC 2131 pour IPv4, automatise cette tâche : un serveur attribue à chaque client une adresse et les paramètres réseau nécessaires, pour une durée limitée appelée bail.

Objectif : comprendre l'échange DHCP, le cycle de vie d'un bail, le rôle du relais entre réseaux, et diagnostiquer un client qui n'obtient pas d'adresse.

Ce que fournit DHCP

Au-delà de l'adresse IP, un serveur DHCP transmet des options (RFC 2132) :

Option Code Contenu
Masque de sous-réseau 1 ex. 255.255.255.0
Routeur (passerelle) 3 ex. 10.20.0.1
Serveurs DNS 6 ex. 10.0.0.53, 10.0.0.54
Nom de domaine 15 ex. exemple.local
Durée du bail 51 en secondes
Serveurs NTP 42 synchronisation horaire
Serveur TFTP / fichier de démarrage 66 / 67 démarrage PXE, téléphones IP

DHCP utilise UDP : le serveur écoute sur le port 67, le client sur le port 68.

L'échange DORA

Un client sans adresse ne connaît ni son adresse, ni celle du serveur. Il procède en quatre messages, résumés par l'acronyme DORA :

  1. Discover : le client diffuse une demande (source 0.0.0.0, destination 255.255.255.255) pour trouver un serveur.
  2. Offer : un ou plusieurs serveurs proposent une adresse disponible et les options associées.
  3. Request : le client choisit une offre et la demande formellement, toujours en diffusion, ce qui informe aussi les serveurs dont l'offre est déclinée.
  4. Acknowledge (ACK) : le serveur confirme le bail. Le client configure alors son interface.
Échange DHCP DORA entre client et serveur
Échange DHCP DORA entre client et serveur

Si l'adresse n'est plus valable, le serveur répond NAK et le client recommence. Avant d'utiliser l'adresse, de nombreux clients vérifient par ARP qu'elle n'est pas déjà employée ; en cas de conflit, ils envoient un message DECLINE.

Cycle de vie d'un bail

Un bail n'est pas permanent. Le client le renouvelle selon deux temporisateurs définis par la RFC 2131 :

  • T1 (par défaut 50 % de la durée) : le client demande un renouvellement directement au serveur qui lui a attribué le bail (unicast).
  • T2 (par défaut 87,5 %) : sans réponse, il diffuse sa demande à n'importe quel serveur (phase de rebinding).
  • Expiration : sans renouvellement, le client doit cesser d'utiliser l'adresse et recommencer le processus.

Le client peut aussi libérer son adresse explicitement (RELEASE), par exemple lors d'un arrêt propre ou d'une commande manuelle.

Choisir la durée du bail :

  • réseau de bureaux stable : plusieurs jours ;
  • Wi-Fi invités ou lieux à forte rotation : quelques heures, pour éviter l'épuisement de l'étendue.

Le relais DHCP : servir plusieurs VLAN

Le message Discover est une diffusion : il ne franchit pas les routeurs. Plutôt que d'installer un serveur par VLAN, on configure un agent de relais (RFC 1542) sur la passerelle de chaque sous-réseau. Le relais reçoit la diffusion, la transmet en unicast au serveur central et renseigne le champ giaddr avec son adresse sur le VLAN du client. Le serveur utilise ce champ pour choisir l'étendue correspondant au bon sous-réseau.

Exemple sur un commutateur ou routeur Cisco (configuration de laboratoire) :

interface Vlan20
 ip address 10.20.0.1 255.255.255.0
 ip helper-address 10.0.0.10

La commande ip helper-address relaie par défaut plusieurs services UDP diffusés, dont DHCP. Sur d'autres plateformes, la fonction s'appelle « DHCP relay ».

Réservations et exclusions

  • Réservation : une adresse fixe est associée à l'identifiant d'un client (adresse MAC ou identifiant client). Idéal pour les imprimantes ou les équipements qui doivent rester joignables à une adresse connue tout en restant gérés centralement.
  • Exclusion : une plage de l'étendue n'est jamais distribuée, car elle est réservée aux adresses statiques (passerelle, serveurs).

Bonne pratique : réservez le début ou la fin de chaque sous-réseau aux équipements configurés statiquement et documentez ce choix dans votre plan d'adressage.

Dépanner un client sans adresse

Symptôme caractéristique

Un poste Windows ou Linux qui affiche une adresse 169.254.x.x n'a reçu aucune réponse DHCP et s'est attribué une adresse lien local (APIPA, RFC 3927).

Commandes côté client

Sous Windows :

ipconfig /release
ipconfig /renew
ipconfig /all          # vérifier "Serveur DHCP" et les dates du bail

Sous Linux (selon le gestionnaire réseau) :

nmcli device show eth0 | grep -i dhcp
sudo dhclient -v eth0          # si dhclient est utilisé
journalctl -u NetworkManager --since "10 min ago"

Capturer l'échange

sudo tcpdump -ni eth0 -vvv 'port 67 or port 68'

Vous verrez immédiatement à quelle étape l'échange s'arrête :

Observation Cause probable
Discover sans Offer Serveur arrêté, relais absent ou mal configuré, VLAN incorrect, filtrage
Offer reçue mais pas d'ACK Conflit entre plusieurs serveurs, client qui rejette l'offre
NAK répétés Client qui demande une ancienne adresse d'un autre réseau
ACK reçu, mais pas de connectivité Option routeur ou DNS erronée dans l'étendue

Côté serveur et réseau

  • L'étendue est-elle active et non épuisée ? Une étendue pleine ne distribue plus rien.
  • Le relais pointe-t-il vers la bonne adresse et le serveur a-t-il une étendue correspondant au giaddr ?
  • Une fonction de sécurité (DHCP Snooping) bloque-t-elle les réponses parce que le port du serveur n'est pas déclaré « de confiance » ?
  • Un serveur DHCP non autorisé (box, point d'accès mal configuré) distribue-t-il de mauvaises adresses ?

Erreurs courantes

  • Oublier le relais lors de la création d'un nouveau VLAN.
  • Chevauchement entre étendue DHCP et adresses statiques, source de conflits.
  • Options DNS pointant vers des serveurs publics sur un réseau qui dépend de noms internes.
  • Deux serveurs DHCP qui distribuent les mêmes plages sans mécanisme de basculement.

Implications de sécurité

DHCP n'authentifie ni le client ni le serveur. Un serveur malveillant peut distribuer une fausse passerelle ou de faux serveurs DNS et intercepter le trafic ; un attaquant peut aussi épuiser une étendue en multipliant les demandes. Les contre-mesures sont le DHCP Snooping sur les commutateurs, la limitation du débit des messages DHCP par port, la segmentation et la surveillance des journaux du serveur. En IPv6, l'équivalent est DHCPv6 Guard et RA Guard.

Conclusion

DHCP repose sur quatre messages, deux temporisateurs et un relais pour traverser les routeurs. Face à un client sans adresse, capturez l'échange : l'étape manquante désigne la cause. Pour la mise en œuvre concrète, consultez Installation et configuration d'un serveur DHCP.

Références