Cours : Le protocole DHCP

Présentation

Le protocole DHCP (Dynamic Host Configuration Protocol) permet la configuration TCP/IP dynamique (automatique) des hôtes d'un réseau local en fournissant au minimum les informations suivantes pour une communication sur le réseau local et sur Internet :

une adresse IP,

le masque de sous-réseau,

la passerelle par défaut,

les serveurs de noms DNS primaire et secondaire.

Ce service est DHCP apporte une solution pour :

fournir sur le réseau une configuration aux ordinateurs quand ils sont actifs ,

centraliser la gestion des informations de configuration TCP/IP et permettre de répercuter facilement toutes modifications de ces informations;

faciliter les tâches d'administration répétitives et fastidieuses tout en évitant les erreurs de configuration.

Quels hôtes utilise ce service

A priori tout hôte qui n'est pas en permanence actif sur le réseau ou dont l'adresse IP peut changer sans que cela prête à conséquence :

ordinateurs fixes et portables des utilisateurs,

smartphones, tablettes,

objets connectés.

Par contre, ne sont pas utilisateur de ce service :

les serveurs,

les équipements d'interconnexion réseaux : routeurs, switchs administrables, point d'accès Wifi, etc.

les périphériques réseaux : imprimantes, téléphones IP, etc.

Fonctionnement du protocole DHCP

Prérequis

Le protocole utilisé est BOOTP et utilise des datagrammes UDP.

Le serveur DHCP doit avoir une adresse IP fixe et utilise le port UDP 67.

Les clients DHCP utilisent le port UDP 68.

Fonctionnement

Quand un hôte en configuration dynamique (DHCP) démarre :

il n'a aucune configuration TCP/IP,

il ne connait pas le réseau ni l'adresse du serveur DHCP.

l'hôte envoie en diffusion Broadcast (adresse destinataire 255.255.255.255) un datagramme (DHCP DISCOVER) qui s’adresse au port 67 de n’importe quel serveur DCP à l’écoute sur ce port. Ce datagramme comporte entre autres l’adresse physique (MAC) du client.

Tout serveur DHCP ayant reçu ce datagramme, s’il est en mesure de proposer une adresse sur le réseau auquel appartient le client, envoie une offre DHCP (DHCP OFFER) à l’attention du client (sur son port 68), identifié par son adresse physique. Cette offre comporte :

l’adresse IP du serveur,

l’adresse IP et le masque de sous-réseau qu’il propose au client.

Plusieurs offres soient adressées au client s'il y a plusieurs serveurs DHCP.

Le client retient la première des offres reçues et diffuse sur le réseau un datagramme de requête DHCP (DHCP REQUEST). Ce datagramme comporte :

l’adresse IP du serveur et celle qui vient d’être proposée au client,

elle a pour effet de demander au serveur choisi :

l’assignation de cette adresse,

l’envoi éventuel des options de configuration comme la passerelle ainsi que les noms des serveurs DNS.valeurs des paramètres,

et d’informer les autres serveurs qui ont fait une offre qui n’a pas été retenue.

Le serveur DHCP élabore un datagramme d’accusé de réception (DHCP ACK pour acknowledgement) qui assigne au client :

l’adresse IP et son masque de sous-réseau,

la durée du bail de cette adresse (dont découlent deux valeurs T1 et T2 qui déterminent le comportement du client en fin de bail), et éventuellement d’autres paramètres :

adresse IP de la passerelle par défaut,

adresses IP des serveurs DNS.

La liste des options que le serveur DHCP peut accepter est consultable dans la RFC 2132 : Options DHCP et Extensions fournisseur BOOTP, Chapitre RFC 1497 : Extensions fournisseur.

Il existe plusieurs types de paquets DHCP susceptibles d'être émis soit par le client pour le ou les serveurs, soit par le serveur vers un client :

DHCPDISCOVER (pour localiser les serveurs DHCP disponibles)

DHCPOFFER (réponse du serveur à un paquet DHCPDISCOVER, qui contient les premiers paramètres)

DHCPREQUEST (requête diverse du client pour par exemple prolonger son bail)

DHCPACK (réponse du serveur qui contient des paramètres et l'adresse IP du client)

DHCPNAK (réponse du serveur pour signaler au client que son bail est échu ou si le client annonce une mauvaise configuration réseau)

DHCPDECLINE (le client annonce au serveur que l'adresse est déjà utilisée)

DHCPRELEASE (le client libère son adresse IP)

DHCPINFORM (le client demande des paramètres locaux, il a déjà son adresse IP)