DHCP IPv4
Définition
DHCP (Dynamic Host Configuration Protocol) attribue automatiquement une adresse IPv4, un masque, une passerelle par défaut et d'autres paramètres aux clients du réseau. Le client émet une requête en broadcast, le serveur répond avec un bail (lease) d'une durée limitée, renouvelable. En l'absence de serveur, le client finit par s'auto-attribuer une adresse dans 169.254.0.0/16 (APIPA), ce qui le coupe du reste du réseau.
Contexte
L'examen 200-301 attend de vous que vous expliquiez le rôle de DHCP (topic 4.3), configuriez et vérifiiez un client DHCP et un relais DHCP (4.6), et lisiez les sorties de show ip dhcp binding. Il faut connaître l'échange DORA, les messages complémentaires (NAK, Release, Inform), les timers de renouvellement, et la différence entre serveur DHCP sur routeur IOS et relais avec ip helper-address.
Détails techniques
Les messages DHCP
DHCP tourne sur UDP : le client écoute sur le port 68, le serveur sur le port 67. Au démarrage (INIT-REBOOT), le client n'a pas d'adresse IP : il envoie un broadcast 0.0.0.0 vers 255.255.255.255, ports source 68 vers destination 67.
| Séquence | Message | Sens | Détail |
|---|---|---|---|
| 1 | DHCP Discover | Client -> broadcast | Recherche tout serveur disponible |
| 2 | DHCP Offer | Serveur -> client ou broadcast | Propose une adresse et les options |
| 3 | DHCP Request | Client -> broadcast | Accepte une offre (broadcast car plusieurs serveurs peuvent répondre) |
| 4 | DHCP ACK | Serveur -> client | Valide le bail |
Quatre messages complètent le protocole. NAK : le serveur refuse l'adresse demandée (le client a changé de sous-réseau et garde une adresse périmée). Release : le client rend son adresse volontairement (rare, souvent absent à l'arrêt brutal d'un poste). Inform : le client a déjà une adresse valide et demande seulement les autres options (NTP, DNS). Decline : le client rejette l'adresse proposée car une vérification ARP montre qu'elle est déjà utilisée.
Le bail et ses timers
Le bail expire, c'est ce qui permet de recycler les adresses. Le client renouvelle en deux temps :
- À 50 % de la durée du bail (timer T1), il envoie un DHCP Request en unicast directement au serveur qui lui a attribué l'adresse.
- À 87,5 % (timer T2), si le serveur d'origine ne répond pas, il repasse en broadcast : n'importe quel serveur DHCP peut valider le renouvellement.
- Au-delà du bail, la liaison est perdue pour le client, qui reprend un Discover complet.
Sur IOS, la commande lease 7 dans le pool donne 7 jours ; sans configuration, le bail par défaut est de 1 jour.
Serveur DHCP sur un routeur IOS
Un routeur IOS peut faire office de serveur, pratique en petite succursale ou en lab Packet Tracer :
R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.99
R1(config)# ip dhcp pool LAN-VTE1
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.10.10
R1(dhcp-config)# domain-name exemple.fr
R1(dhcp-config)# lease 7
ip dhcp excluded-address reserve les adresses statiques (passerelle, imprimantes, serveurs) : le pool commence à attribuer au-dessus de la plage exclue. Le service DHCP serveur est actif par défaut sur IOS (service dhcp).
Le relais DHCP
Les broadcasts ne traversent pas un routeur : un client du VLAN 20 ne voit pas le serveur posé au siège. L'interface du premier routeur (ou du switch L3) configure un helper :
SW1(config-if)# interface Vlan20
SW1(config-if)# ip address 192.168.20.1 255.255.255.0
SW1(config-if)# ip helper-address 10.10.50.5
ip helper-address convertit le broadcast DHCP en unicast vers l'adresse indiquée et renseigne le champ giaddr (gateway IP address) de la trame DHCP. Le serveur lit ce champ pour choisir le pool correspondant au sous-réseau du client. Un piège à connaître : ip helper-address ne relaie pas que DHCP. Par défaut, IOS forwards huit classes de trafic UDP broadcast (dont DNS, TFTP, NTP mode broadcast), ajustables avec ip forward-protocol.
Vérification
R1# show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Interface Hold time Type
192.168.10.101 Vl10 6:57:34 Automatic
R1# show ip dhcp pool
Pool LAN-VTE1 :
Utilization mark (high/low) : 100 / 0
Total addresses in use : 42
Free addresses : 164
R1# show ip dhcp conflict
show ip dhcp conflict liste les adresses signalées en conflit (détection par ping et ARP avant attribution). Côté client Windows : ipconfig /release puis ipconfig /renew relancent un cycle complet.
Exemple concret
Une succursale compte un switch L3 avec le VLAN 30 en 192.168.30.0/24, 40 postes, et un serveur DHCP au siège en 10.10.50.5. Après la commande ip helper-address 10.10.50.5 sur l'interface VLAN 30, les postes obtiennent une adresse. Deux jours plus tard, cinq postes se plaignent de ne plus sortir (169.254.x.x en ipconfig). Diagnostic : l'interface VLAN avait été basculée en no ip helper-address lors d'une maintenance. Preuve : sur le serveur au siège, show ip dhcp server statistics n'affiche plus de Forwarded sur l'interface concernée, et le pool LAN-V30 est passé à 250 adresses utilisées sur 254 : le bail de 8 jours laissé par défaut a saturé le pool avec les churns de voyageurs.
Pièges fréquents
- Oublier
ip dhcp excluded-address: le serveur attribue l'adresse de la passerelle, conflit ARP, réseau instable. - Mettre le helper sur l'interface côté serveur au lieu de l'interface côté client (celui qui reçoit le broadcast).
- Confondre les rôles des ports : le serveur écoute sur UDP 67, le client sur UDP 68.
- Un pool épuisé produit des APIPA silencieux : vérifier
show ip dhcp poolavant d'accuser le switch.