Skip to main content

Réseau - Protocole DHCP

image.png

Difficulté : Novice


Résumé :

  • OSI : couche 7 (Application) sur couche 4 (Transport)
  • Type : UDP
  • Port : 67, 68



I. Introduction

Le protocole DHCP (Dynamic Host Configuration Protocol) est un protocole permettant la configuration réseau automatique d'un ou plusieurs hôtes par un serveur.

Cela permet de gérer un grand nombre d'hôtes sans nécessiter une intervention des administrateurs.

Les échanges entre le client et le serveur se font entre la couche 5 et 7 du modèle OSI.



II. Diagramme 

drawing-1-1768895411.png

1 - DHCP Discover

L'hôte configuré en DHCP envoie un broadcast général. Il place son adresse MAC dans le paquet.

Il utilise l'ip 0.0.0.0 en source et envoie son broadcast à 255.255.255.255 en destination.

Cela lui permet d'adresser toutes les machines présentes sur le réseau.

Si un serveur DHCP se trouve à portée, il captera le broadcast et répondra alors.

2 - DHCP Offer

Le serveur DHCP reçoit la requête et, comme le PC de destination n'a pas d'adresse IP, il va alors répondre également en broadcast.

Info : Certains clients acceptent une réponse en unicast. Le DHCP pourra alors être configuré pour leur répondre en unicast.

Il va envoyer dans le paquet la configuration réseau (ip, masque, passerelle, dns, etc...) ainsi qu'une durée de bail et l'adresse MAC du pc demandeur.

Si plusieurs serveurs DHCP sont présents, selon leurs configuration, l'un d'entre eux ou tous répondront à la requête et le client fera son choix (généralement basé sur la réponse la plus rapide).

3 - DHCP Request / DHCP Decline

L'ensemble des hôtes présents sur le réseau reçoivent la réponse.

Comme le demandeur avais placé son adresse MAC dans le paquet, il comprends que la réponse lui est adressée. Les autres hôtes lisent l'adresse MAC, et comme ce n'est pas la leur, ignorent le message.

Si plusieurs serveurs DHCP ont répondus, le client fera alors son choix (généralement basé sur la réponse la plus rapide).

Ensuite, deux scénarii :

  • Le client vérifie sa configuration, voit que la configuration proposée correspond à son besoin et ne rentre pas en conflit avec l'une de ses configuration déjà existantes. Il demandera alors au serveur si il peut utiliser cette configuration avec un message DHCP Request.
  • Le client vérifie sa configuration et voit que la configuration proposée rentre en conflit avec l'une de ses configuration. Il refuse donc l'offre et renvoie un message DHCP Decline. Puis l'échange s'arrête là.

4 - DHCP Ack

Le serveur qui a reçu le message de requête va alors la prendre en compte et renvoyer au client un message en lui indiquant qu'il a bien Validé cette demande.

Suite à cet échange

Une fois cet échange terminé le serveur va alors enregistrer dans sa base l'adresse MAC du PC ayant fait la demande ainsi que la configuration qui lui a été attribuée ainsi que la durée du bail.

Un compteur se met alors en route. A la fin de celui-ci, le bail étant terminé, le serveur va libérer cette configuration et la remettre dans son pool de disponibilité. Elle pourra donc ensuite être réattribuée à un autre hôte qui fera une demande.


III. Configuration

Lors de la configuration d'un serveur DHCP, il va falloir un minimum d'informations :

  • l'adresse IP de début de plage (la première qui sera proposée aux hôtes)
  • l'adresse IP de fin de plage (la dernière qui sera proposée)
    • toutes les adresses IP qui seront entre les deux constitueront la Plage DHCP ou le Pool d'adresses.
  • le masque de sous-réseau
  • l'adresse de la passerelle

Il est possible de fournir au client plus de configurations :

  • Les serveurs de noms (DNS)
  • Les serveurs de temps (NTP)
  • Les serveurs TFTP (serveurs de démarrage réseau, pour faire booter un PC sur une image situé sur le réseau)
  • etc...


IV. Autres principes

Réservation : Il est possible de réserver une configuration. Lorsqu'un hôte obtient une configuration, on pourra demander au serveur de lui réattribuer systématiquement la même.

Plage d'exclusion : Il est également possible de définir à l'intérieur des plages d'adresses des exclusions, afin de préciser que certaines adresses ne doivent pas être distribuées.



IV. Relais DHCP

Comme vu plus haut, le DHCP s'appuie essentiellement sur des broadcasts. Hors, le problème est que les broadcast ne passent pas les routeurs.

Si l'on veut distribuer des adresses sur un ou plusieurs réseaux se situant derrière des routeurs, il faudra donc utiliser un relai DHCP.

Le rôle de celui-ci sera de prendre le broadcast envoyé par le client et de le renvoyer sous forme d'unicast au serveur DHCP. Puis de récupérer la réponse de celui-ci et de la retransmettre en broadcast dans le réseau d'origine.

Ainsi :

drawing-1-1759516338.png


V. Cas de plusieurs réseaux

Dans le cas où un serveur devrait servir plusieurs étendues réseaux, lors du passage du relais, celui-ci glisse dans le paquet (champ giaddr) son adresse IP.

En se basant sur cette adresse, le serveur DHCP choisit alors l'étendue adaptée et fait une proposition dans ce sens.

C'est ainsi que le tri se fait entre les demandes.

Info : A noter que si le relai DHCP peut être une machine dans le réseau, certains routeurs proposent nativement cette fonctionnalité.