DHCP : Présentation et définitions
Le DHCP (Dynamic Host Configuration Protocol) est un protocole réseau essentiel pour attribuer dynamiquement des adresses IP à chaque hôte sur le réseau local, que ce soit le réseau d'une entreprise ou le réseau du logement d'un particulier.
Le protocole DHCP a été utilisé la première fois en 1993. Il est défini par la RFC1531 et a été, par la suite, modifié et complété par les RFC1534, RFC2131 et RFC2132. Ce protocole fonctionne aussi bien en IPv4 qu’en IPv6. Dans ce cas, il s’appelle DHCPv6 et les adresses peuvent être auto configurées, sans DHCP.
Le protocole fonctionne en mode client/serveur et s’appuie essentiellement sur un mécanisme de requêtes DHCP, traitées par le serveur et émises par les clients. Le moteur principal de ce protocole est adossé à la communication BOOTP (utilisant des trames UDP).
REMARQUE : lorsqu’une machine est démarrée, elle ne possède alors aucune information concernant sa configuration réseau. L’utilisateur n’a rien de spécial à réaliser pour obtenir une adresse IP. C’est le système de diffusion (ou broadcast) des trames qui vont servir à trouver et à dialoguer avec un serveur DHCP.
La machine cliente ne fait qu’émettre un paquet spécifique de broadcast (à destination de l’adresse 255.255.255.255, c'est-à-dire l'adresse de broadcast), en mentionnant d’autres paramètres, tels que le type de requête, les ports de connexion, etc. Le tout est envoyé sur le réseau local.
Le serveur DHCP va distribuer une configuration réseau complète à la machine : une adresse IP, un masque de sous-réseau, une passerelle par défaut, un ou plusieurs serveurs DNS, etc... Tout dépend des options DHCP configurées dans les paramètres de l'étendue DHCP.
I. Les différents types de paquets
Lorsque le serveur DHCP reçoit le paquet de diffusion, il renvoie alors un nouveau paquet de broadcast contenant les informations requises par le client. En réalité, un seul paquet n’est pas suffisant pour traiter la requête. Il existe plusieurs types de paquets DHCP susceptibles d’être émis par un client à destination du ou des serveurs, ou d’un serveur vers ses clients. Il existe essentiellement huit catégories de paquets.
Une demande DHCP classique s'appuie sur 4 paquets et cela correspond à ce que l'on peut appeler le processus DORA.
- DHCPDISCOVER : une requête émise par le client pour localiser les serveurs DHCP disponibles.
- DHCPOFFER : réponse du serveur DHCP à un paquet DHCP DISCOVER, pour proposer une configuration IP au client.
- DHCPREQUEST : diverses requêtes du client, notamment pour prévenir le serveur DHCP qu'il accepte l'offre.
- DHCPACK : réponse du serveur pour valider l'attribution des paramètres réseau à ce client (enregistrement d'un bail DHCP)
À cela s'ajoutent ces 4 paquets :
- DHCPNAK : réponse du serveur signalant au client que le bail est échu.
- DHCPDECLINE : annonce du client que l’adresse fournie est déjà utilisée.
- DHCPRELEASE : libération de l’adresse IP de la part du client.
- DHCPINFORM : demande de paramètres locaux de la part du client (ayant déjà son IP).
Ainsi, le premier paquet émis par un client est de type DHCPDISCOVER. Le serveur identifié répond alors par un paquet DHCPOFFER afin de soumettre une adresse IP à ce même client. Ce dernier établit alors sa configuration et émet un paquet DHCPREQUEST afin de valider sa nouvelle adresse IP.
ATTENTION : cette dernière requête est en mode diffusion car, en réalité le paquet DHCPOFFER ne contient pas l’adresse IP.
Après quoi, le serveur répond à cette demande par l’émission d’un paquet DHCPACK, confirmant alors l’adresse IP précédemment attribuée. Normalement, ce fonctionnement est suffisant pour que le client obtienne une configuration réseau efficace. Mais, l’opération peut durer plus ou moins longtemps, selon que le client accepte ou non l’adresse IP qui lui a été soumise.
II. Notion d’étendue
On parle d’étendue d’adresses pour définir une plage d’adresses IP disponibles sur un segment réseau spécifique. En règle générale, une étendue s’appuie sur les adresses d’un sous-réseau particulier. Dans une étendue, nous allons définir une plage d'adresses IP que le serveur peut distribuer aux clients du réseau. A chaque fois qu'une adresse IP est distribuée, un bail DHCP est enregistré dans la base de données du serveur DHCP.
REMARQUE : on peut aussi trouver la notion de "super étendue". Cela consiste en une collection d’étendues, regroupées dans un ensemble administratif. Les clients peuvent ainsi recevoir une adresse IP de la part de plusieurs sous-réseaux logiques, même en résidant sur un même sous-réseau physique.
III. Réservation d’adresses IP
On parle de réservation d’adresses DHCP lorsqu’une adresse IP, au sein d’une étendue est écartée afin d’être utilisée par un client DHCP spécifique. La réservation est effectuée vis-à-vis de l'adresse MAC de la machine. Cette adresse IP ne pourra pas être distribuée à une autre machine que celle pour laquelle l'adresse MAC a été déclarée.
IMPORTANT : en ce qui concerne l’attribution des adresses IP des serveurs et des imprimantes, il est conseillé de leur attribuer une adresse IP fixe. Ainsi, les adresses contenues dans une étendue prédéfinie ne seront pas affectées par inadvertance, à un autre périphérique.
Par ailleurs, les périphériques ayant déjà fait l’objet d’une réservation disposeront alors à coup sûr d’une adresse IP, lorsqu’une étendue vient à arriver à court d’adresses. Le fait de configurer des réservations, permet de centraliser la gestion des adresses IP fixes.
Lorsque l’on configure des étendues DHCP et des options d’étendue, on doit bien évidemment tenir compte du nombre d’adresses IP que l’on doit assigner et de la façon dont on implémentera la tolérance aux pannes. Il est d’ailleurs fortement recommandé de disposer de plusieurs serveurs DHCP, au sein du réseau. Ainsi, en cas de panne, il y aura toujours un serveur de secours pour distribuer les adresses IP.
Dans le prochain chapitre, nous évoquerons plus en détail le fonctionnement de la demande de configuration réseau.