Chapitre 620 minIntermédiaire
DHCP : DORA, étendues, options et relais DHCP
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- décrire l'échange DORA et les autres messages DHCP ;
- expliquer le fonctionnement d'un relais DHCP et le rôle du giaddr ;
- concevoir les étendues et les options d'un réseau en VLAN ;
- calculer les délais de renouvellement d'un bail ;
- protéger le service contre les serveurs pirates et l'épuisement.
5 exercices corrigés1 schéma
Le DHCP (Dynamic Host Configuration Protocol) attribue automatiquement à chaque appareil qui se branche son adresse IP, son masque, sa passerelle, ses serveurs DNS et d'autres réglages, pour une durée limitée appelée bail. L'échange tient en quatre messages, Discover, Offer, Request et Acknowledge, d'où son surnom DORA. Ce chapitre détaille le protocole, les étendues et les options, le relais qui permet à un seul serveur de servir tous les VLAN, la répartition des rôles entre le DHCP de l'annuaire et celui de pfSense, et la sécurité du service.
Les messages DHCP
Le DHCP fonctionne en UDP : le serveur écoute sur le port 67, le client sur le port 68. Au départ, le client n'a pas d'adresse et ne connaît pas le serveur : il parle en diffusion, avec l'adresse source 0.0.0.0 et la destination 255.255.255.255.
| Message | Envoyé par | Rôle |
|---|---|---|
| DHCPDISCOVER | Client, en diffusion | « Y a-t-il un serveur DHCP ? » |
| DHCPOFFER | Serveur | « Je te propose l'adresse 192.168.10.83, avec ces options, pour 8 jours » |
| DHCPREQUEST | Client, en diffusion | « J'accepte l'offre du serveur 192.168.10.177 » (les autres serveurs comprennent que leur offre est refusée) |
| DHCPACK | Serveur | « C'est noté, l'adresse est à toi » : le bail commence |
| DHCPNAK | Serveur | « Refusé » : l'adresse demandée n'est pas valable ici (le poste a changé de réseau) |
| DHCPDECLINE | Client | « L'adresse que tu m'as donnée est déjà utilisée » : le client l'a testée par ARP avant de s'en servir |
| DHCPRELEASE | Client | « Je rends mon adresse » (ipconfig /release) |
| DHCPINFORM | Client | « J'ai déjà une adresse fixe, donne-moi seulement les options » |
DORA à travers un relais
Chez Sorbier, le poste de Julie est dans le VLAN 10 et le serveur DHCP srv-ad dans le VLAN 20. Une diffusion ne traverse pas un routeur : sans aide, le DISCOVER de Julie n'arriverait jamais au serveur. Le commutateur de cœur SW-COEUR, qui route entre les VLAN, joue le rôle de relais DHCP (DHCP relay agent).
Le relais fait trois choses :
- Il capte la diffusion sur son interface du VLAN 10.
- Il la retransmet en unicast au serveur configuré, de son port UDP 67 vers le port UDP 67 du serveur.
- Il écrit dans le champ giaddr (gateway IP address) du message l'adresse de son interface de réception,
192.168.10.126. C'est grâce à ce champ que le serveur sait de quel réseau vient la demande, et qu'il choisit l'étendue qui contient cette adresse :192.168.10.64/26.
Le serveur répond au relais, qui transmet au client. Le relais peut aussi ajouter l'option 82 (Relay Agent Information) : l'identifiant du switch et du port d'où vient la demande. Le serveur peut s'en servir pour ses décisions, et l'administrateur pour retrouver où est branché un appareil.
Le relais sur un switch de niveau 3 ou sur pfSense
Sur SW-COEUR, un Catalyst qui route les VLAN internes, une commande par interface VLAN suffit (Routage et commutation) :
SW-COEUR(config)# interface Vlan10
SW-COEUR(config-if)# ip helper-address 192.168.10.177
SW-COEUR(config-if)# ip helper-address 192.168.10.181
SW-COEUR(config-if)# exit
SW-COEUR(config)# interface Vlan30
SW-COEUR(config-if)# ip helper-address 192.168.10.177
SW-COEUR(config-if)# ip helper-address 192.168.10.181
Les deux adresses correspondent aux deux serveurs DHCP en basculement : le relais envoie la demande aux deux. Rien à faire sur l'interface Vlan20 : le serveur y reçoit les diffusions directement.
Dans l'architecture où pfSense route lui-même tous les VLAN (Cybersécurité des infrastructures ; le cours pfSense détaille relais et serveur DHCP), c'est lui qui relaie, dans Services > DHCP Relay :
| Champ | Valeur |
|---|---|
| Enable DHCP Relay | Coché |
| Downstream Interfaces | POSTES, ENTREPOT, TELEPHONIE : les interfaces dont il faut relayer les demandes |
| Upstream Servers | 192.168.10.177, puis Add pour 192.168.10.181 |
| Append circuit ID and agent ID to requests | Coché pour ajouter l'option 82 (l'interface d'origine) |
Qui distribue quoi chez Sorbier
Chez Sorbier, la règle est simple : le DHCP de l'annuaire sert tout le réseau interne, et pfSense ne distribue des adresses que là où l'annuaire n'a rien à faire.
| VLAN | Réseau | Serveur DHCP | Plage distribuée | Passerelle (option 003) | DNS (option 006) | Bail |
|---|---|---|---|---|---|---|
| 10 POSTES | 192.168.10.64/26 | srv-ad + srv-ad2 | .65 à .115 | .126 | .177, .181 | 8 jours |
| 30 ENTREPOT | 192.168.10.128/27 | srv-ad + srv-ad2 | .129 à .150 | .158 | .177, .181 | 8 jours |
| 50 TELEPHONIE | 192.168.10.160/28 | srv-ad + srv-ad2 | .161 à .173 | .174 | .177, .181 | 8 jours |
| 40 VISITEURS | 192.168.10.0/26 | pfSense | .1 à .61 | .62 | .62 (résolveur du pare-feu) | 2 heures |
| 20 SERVEURS, 99 ADMIN, 60 DMZ | — | Aucun : adresses fixes | — | — | — | — |
Les serveurs, les équipements d'administration et la DMZ ont des adresses fixes, notées dans le plan d'adressage : un serveur dont l'adresse dépendrait d'un bail deviendrait injoignable à la moindre panne du DHCP. Les appareils qui doivent garder la même adresse sans être configurés à la main (imprimantes, bornes) reçoivent une réservation.
La création des étendues, des exclusions, des réservations et du basculement entre srv-ad et srv-ad2, en console et en PowerShell, est détaillée dans le cours Windows Server, au chapitre DNS et DHCP.
Étendue, plage, exclusion, réservation
| Notion | Définition | Exemple chez Sorbier |
|---|---|---|
| Étendue (scope) | L'ensemble de la configuration DHCP d'un réseau : plage, masque, options, durée du bail | VLAN10-POSTES, identifiant 192.168.10.64 |
| Plage (pool) | Les adresses que le serveur peut distribuer | .65 à .125 |
| Exclusion | Des adresses de la plage que le serveur ne distribue pas, car elles sont fixées à la main | .116 à .125 (imprimantes et bornes Wi-Fi) |
| Réservation | Une adresse toujours attribuée au même appareil, reconnu à son adresse MAC (ou son identifiant client) | .110 pour l'imprimante de l'accueil |
| Bail (lease) | La durée pendant laquelle l'adresse est attribuée | 8 jours pour les postes |
La différence entre adresse fixe et réservation compte : l'appareil réservé reste client DHCP. Si tu changes de serveur DNS, il reçoit la nouvelle option au renouvellement de son bail ; un appareil configuré à la main devra être reconfiguré un par un.
Les options DHCP
| Code | Option | Usage |
|---|---|---|
| 001 | Masque de sous-réseau | Toujours envoyé avec l'adresse |
| 003 | Routeur | La passerelle par défaut, propre à chaque étendue |
| 006 | Serveurs DNS | Les résolveurs, dans l'ordre de préférence |
| 015 | Nom de domaine DNS | Le suffixe ajouté aux noms courts (ad.sorbier.example) |
| 042 | Serveurs NTP | Pour les appareils hors domaine (téléphones, caméras) |
| 043 | Informations spécifiques au fournisseur | Découverte du contrôleur par les bornes Wi-Fi, selon le constructeur |
| 051 | Durée du bail | Réglée par l'étendue |
| 066 et 067 | Serveur et fichier de démarrage | Démarrage réseau (PXE) pour le déploiement des postes |
| 082 | Informations de l'agent relais | Ajoutée par le relais : switch et port d'origine |
| 119 | Liste de recherche de domaines | Plusieurs suffixes DNS, pour les clients qui la gèrent |
| 121 | Routes statiques sans classe | Des routes supplémentaires à installer sur le client |
| 150 | Serveur TFTP (propre à Cisco) | Les téléphones IP Cisco y téléchargent leur configuration |
Les options se définissent à plusieurs niveaux, du plus général au plus précis : serveur, étendue, réservation (et, sous Windows, stratégies qui ciblent une classe d'appareils). Quand une même option est définie à deux niveaux, le plus précis gagne. On met donc au niveau du serveur ce qui est commun à tous (DNS, nom de domaine), au niveau de l'étendue ce qui change d'un réseau à l'autre (passerelle), et au niveau de la réservation les exceptions.
Le cycle de vie d'un bail
Un bail n'est pas acquis pour toujours : le client doit le renouveler.
| Moment | Ce que fait le client | Comment |
|---|---|---|
| T1, à 50 % du bail | Demande le renouvellement au serveur qui lui a donné l'adresse | REQUEST en unicast ; le serveur répond ACK |
| T2, à 87,5 % du bail | Le serveur d'origine n'a pas répondu : il demande à n'importe quel serveur | REQUEST en diffusion (rebinding) |
| Fin du bail | Personne n'a répondu : il abandonne l'adresse | Il recommence un DISCOVER, et prend une adresse APIPA en attendant |
| Redémarrage | Il redemande l'adresse qu'il avait | REQUEST en diffusion (état INIT-REBOOT) : ACK si elle est toujours valable, NAK s'il a changé de réseau |
Avec un bail de 8 jours, le poste de Julie renouvelle au bout de 4 jours (T1) et, sans réponse, tente un autre serveur au bout de 7 jours (T2). C'est pourquoi une panne d'un jour du DHCP passe inaperçue pour les postes déjà allumés, alors que les postes qui arrivent ne reçoivent rien.
Le choix de la durée :
- long (8 jours, le défaut de Windows) pour des postes fixes : peu de trafic, et une marge confortable en cas de panne ;
- court (1 à 2 heures) pour un réseau visiteurs, où les appareils passent sans revenir : sans cela, la plage se remplit de baux d'appareils partis depuis longtemps ;
- raccourci temporairement avant un changement de plan d'adressage, pour que tous les postes prennent la nouvelle configuration rapidement.
Le DHCP des invités sur pfSense
Le Wi-Fi invité de Sorbier (VLAN 40) est servi par pfSense, dans Services > DHCP Server, onglet de l'interface VISITEURS. pfSense propose deux moteurs DHCP, choisis dans System > Advanced > Networking, champ Server Backend : Kea, le moteur actuel, et ISC DHCP, déprécié par Netgate et appelé à disparaître des futures versions.
| Réglage | Valeur |
|---|---|
| Enable | DHCP activé sur l'interface VISITEURS |
| Address Pool Range | De 192.168.10.1 à 192.168.10.61 |
| DNS Servers | 192.168.10.62 (le résolveur du pare-feu), ou vide : pfSense donne alors sa propre adresse |
| Gateway | 192.168.10.62, ou vide pour l'adresse de l'interface |
| Default Lease Time | 7200 secondes (2 heures) |
Le réseau des invités ne reçoit aucune option qui mène à l'intérieur : ni DNS de l'annuaire, ni nom de domaine interne. Les règles du pare-feu sur l'interface VISITEURS n'autorisent que le DNS et le DHCP vers le pare-feu, puis Internet.
Et sous Linux ? Kea
Sous Linux, le serveur historique ISC DHCP (isc-dhcp-server) n'est plus maintenu par son éditeur depuis 2022 : il est encore dans Debian 13, mais tu ne dois plus le choisir pour une installation neuve. Son successeur, du même éditeur, est Kea (paquet kea-dhcp4-server, version 2.6 dans Debian 13), configuré en JSON. Pour une maquette sans Windows, la même étendue des invités s'écrit ainsi dans /etc/kea/kea-dhcp4.conf :
{
"Dhcp4": {
"interfaces-config": { "interfaces": [ "ens18" ] },
"lease-database": { "type": "memfile", "persist": true, "name": "/var/lib/kea/kea-leases4.csv" },
"valid-lifetime": 7200,
"subnet4": [
{
"id": 40,
"subnet": "192.168.10.0/26",
"pools": [ { "pool": "192.168.10.1 - 192.168.10.61" } ],
"option-data": [
{ "name": "routers", "data": "192.168.10.62" },
{ "name": "domain-name-servers", "data": "192.168.10.62" }
],
"reservations": [
{ "hw-address": "00:1b:a9:4c:21:80", "ip-address": "192.168.10.50", "hostname": "borne-accueil" }
]
}
]
}
}
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf # vérifier la configuration
sudo systemctl restart kea-dhcp4-server
Les noms des options sont les mêmes partout, seule l'écriture change : routers est l'option 003, domain-name-servers l'option 006.
La sécurité du DHCP
Le DHCP n'authentifie personne : n'importe quel appareil peut demander une adresse, et n'importe quel appareil peut répondre aux demandes.
| Menace | Principe | Symptômes | Parades |
|---|---|---|---|
| Serveur DHCP pirate (rogue DHCP) | Un appareil répond aux DISCOVER plus vite que le vrai serveur et distribue sa propre passerelle ou son propre DNS (attaque de l'homme du milieu), ou simplement de mauvaises adresses | Postes avec une passerelle ou un DNS inconnu, adresses d'un autre réseau ; souvent une box ou un routeur Wi-Fi branché par erreur | Surveillance DHCP (DHCP snooping) sur les switchs : seuls les ports de confiance (vers les serveurs et le relais) peuvent envoyer des réponses DHCP. L'autorisation dans l'annuaire n'arrête que les serveurs Windows du domaine |
| Épuisement (starvation) | Un appareil envoie des milliers de DISCOVER avec de fausses adresses MAC et vide la plage | Étendue pleine, nouveaux postes en APIPA, journal DHCP rempli de MAC inconnues | Limitation du débit DHCP par port (DHCP snooping), sécurité des ports (nombre de MAC par port), 802.1X (chapitre 12) |
La configuration de la surveillance DHCP sur les switchs est décrite dans Cybersécurité des infrastructures. Pense aussi aux journaux : le journal d'audit du DHCP Windows (C:\Windows\System32\dhcp\DhcpSrvLog-<Jour>.log) dit quelle adresse MAC avait quelle adresse IP à quelle heure, une information décisive lors d'une enquête sur un incident.
Exercices
Exercice 1 sur 5 Remettre DORA dans l'ordre Réussi À revoir
Le poste PC-COMPTA-03 du VLAN 10 démarre pour la première fois. Tu captures le trafic à deux endroits : sur son port de switch (VLAN 10) et sur le port de srv-ad (VLAN 20). Tu relèves quatre messages de chaque côté, dans le désordre : REQUEST, ACK, DISCOVER, OFFER.
- Remets-les dans l'ordre.
- Côté VLAN 10, quelles sont l'adresse source et l'adresse de destination du DISCOVER ?
- Côté VLAN 20, le DISCOVER est-il en diffusion ou en unicast ? Quelle valeur porte son champ giaddr ?
- Comment
srv-ad, qui gère trois étendues, sait-il laquelle utiliser ?
Voir la réponseMasquer la réponse de l'exercice 1
- DISCOVER, OFFER, REQUEST, ACK, des deux côtés.
- Source
0.0.0.0(le poste n'a pas encore d'adresse), destination255.255.255.255(diffusion), du port UDP 68 vers le port UDP 67. - En unicast vers
192.168.10.177: le relais SW-COEUR a transformé la diffusion. Le champ giaddr vaut192.168.10.126, l'adresse de l'interfaceVlan10qui a reçu la demande. - Il cherche l'étendue qui contient l'adresse du giaddr :
192.168.10.126appartient à192.168.10.64/26, l'étendueVLAN10-POSTES. Il répond ensuite au relais, à cette même adresse.
Tu avais trouvé ?
Exercice 2 sur 5 Les délais du bail Réussi À revoir
- Un poste du VLAN 10 obtient un bail de 8 jours le lundi à 9 h. Quand tente-t-il le premier renouvellement, et quand le passage à n'importe quel serveur ?
- Un smartphone du Wi-Fi invité obtient un bail de 2 heures à 14 h. Mêmes questions.
- Les deux serveurs DHCP de l'annuaire tombent le mercredi à 8 h. Le poste de la question 1 perd-il son adresse avant la réparation, prévue le jeudi à 18 h ?
Voir la réponseMasquer la réponse de l'exercice 2
- T1 = 50 % de 8 jours = 4 jours, le vendredi à 9 h. T2 = 87,5 % = 7 jours, le lundi suivant à 9 h.
- T1 à 15 h (1 heure), T2 à 15 h 45 (1 h 45 min).
- Non. Le renouvellement du vendredi 9 h a lieu après la réparation du jeudi 18 h : le poste ne remarque même pas la panne. En revanche, un poste qui démarre pour la première fois pendant la panne n'obtient aucune adresse.
Tu avais trouvé ?
Exercice 3 sur 5 L'étendue de la téléphonie Réussi À revoir
Le VLAN 50 de la téléphonie est 192.168.10.160/28, passerelle 192.168.10.174. Sorbier y branche 9 téléphones IP et 3 caméras, qui doivent garder la même adresse.
- Combien d'adresses l'étendue
.161à.173peut-elle distribuer ? - Comment donnes-tu une adresse stable aux caméras sans les configurer à la main ?
- L'entreprise prévoit 6 téléphones de plus l'an prochain. Que se passe-t-il ?
- Les téléphones Cisco doivent trouver le serveur TFTP de l'opérateur de téléphonie, en
198.51.100.70. Quelle option configures-tu, et à quel niveau ?
Voir la réponseMasquer la réponse de l'exercice 3
- 173 − 161 + 1 = 13 adresses.
- Trois réservations, par adresse MAC, dans la plage. Les caméras restent clientes DHCP et reçoivent les options à jour.
- 9 + 3 + 6 = 18 appareils pour 13 adresses : l'étendue est épuisée, les derniers appareils prennent une adresse APIPA. Agrandir le réseau sur place est impossible : il n'y a plus de /27 libre dans
192.168.10.0/24(un /27 contenant.160, de.160à.191, empiéterait sur les serveurs.176/28) ; seul192.168.10.200/29reste libre (192.168.10.240/28porte le réseau de stockage, VLAN 80). Sortir les caméras dans un VLAN à elles (par exemple sur.200/29, 5 adresses distribuables) ne suffit pas : il resterait 15 téléphones pour 13 adresses. La téléphonie doit donc changer de plage, hors de192.168.10.0/24: par exemple un VLAN 50 renuméroté en192.168.11.0/26(61 adresses distribuables, passerelle.62), avec sa nouvelle étendue et son relais, avant l'arrivée des nouveaux téléphones. - L'option 150 (ou l'option 066 selon le modèle), au niveau de l'étendue du VLAN 50 : elle ne concerne que les téléphones.
Tu avais trouvé ?
Exercice 4 sur 5 Le niveau qui gagne Réussi À revoir
Sur srv-ad, l'option 006 vaut 192.168.10.177, 192.168.10.181 au niveau du serveur. Dans l'étendue du VLAN 30, elle vaut 192.168.10.181, 192.168.10.177. La réservation du terminal SCAN-07 dans cette étendue la règle à 192.168.10.177.
Quels serveurs DNS reçoivent : un poste du VLAN 10 ; un terminal du VLAN 30 ; le terminal SCAN-07 ?
Voir la réponseMasquer la réponse de l'exercice 4
- Poste du VLAN 10 :
192.168.10.177, 192.168.10.181, l'option du serveur (son étendue ne la redéfinit pas). - Terminal du VLAN 30 :
192.168.10.181, 192.168.10.177, l'option de l'étendue, plus précise que celle du serveur. SCAN-07:192.168.10.177, l'option de la réservation, la plus précise des trois.
Tu avais trouvé ?
Exercice 5 sur 5 Le DHCP pirate Réussi À revoir
Le lundi matin, une dizaine de postes du deuxième étage n'accèdent plus aux partages. ipconfig /all sur l'un d'eux donne l'adresse 192.168.1.23, la passerelle 192.168.1.1 et le serveur DHCP 192.168.1.1.
- Que s'est-il passé ?
- Comment retrouves-tu l'appareil en cause ?
- Quelle mesure empêche que ça se reproduise, et où la configures-tu ?
Voir la réponseMasquer la réponse de l'exercice 5
- Un serveur DHCP pirate répond aux postes : le réseau
192.168.1.0/24n'existe pas dans le plan de Sorbier. C'est souvent une box ou un routeur Wi-Fi branché sur une prise du bureau. - Lire l'adresse MAC de
192.168.1.1(arp -adepuis un poste touché), puis chercher cette MAC dans la table des switchs (show mac address-table address <MAC>) pour trouver le port, et donc la prise. - La surveillance DHCP (DHCP snooping) sur les switchs d'accès et de cœur : seuls les ports vers les serveurs DHCP et le relais sont déclarés de confiance, les réponses DHCP qui arrivent par un autre port sont jetées. Complète par la désactivation des prises inutilisées et par 802.1X.
Tu avais trouvé ?