
DH : utilité et fonctionnement
DH : utilité et fonctionnement
Vous avez déjà très probablement noté la présence d'un réglages DH dans les paramètres réseau de Windows ou de macOS. Ce protocole permet une configuration simple et rapide de votre connexion réseau. Voici comment.
Pour connecter facilement des ordinateurs ou n'importe quel appareil à un réseau local, on peut s'appuyer sur le protocole DH. Les quatre lettres signifient Dynamic Host Configuration Protocol. Il s'agit d'un protocole qui permet à un ordinateur ou à n'importe quel appareil capable de se connecter à un réseau filaire ou WiFi d'obtenir de façon dynamique et automatique (c'est-à-dire sans intervention particulière) sa configuration (principalement, sa configuration réseau). En d'autres termes, on demande à l'appareil devant se connecter de trouver seul une adresse IP valide et disponible à utiliser sur le réseau en utilisant le protocole DH. Le but principal étant la simplification de l'istration d'un réseau.
Si le protocole DH sert principalement à distribuer des adresses IP sur un réseau, il a été conçu au départ comme complément au protocole BOOTP (Bootstrap Protocol) qui est utilisé par exemple lorsque l'on installe une machine à travers un réseau (BOOTP est utilisé en étroite collaboration avec un serveur TFTP sur lequel le client va trouver les fichiers à charger et à copier sur le disque dur). Un serveur DH peut renvoyer des paramètres BOOTP ou de configuration, propres à un hôte donné.
Comment fonctionne le DH ?
Pour mettre le protocole DH en action, il faut dans un premier temps un serveur DH qui distribue des adresses IP. Cette machine va servir de base pour toutes les requêtes DH, aussi elle doit avoir une adresse IP fixe. Dans un réseau, on peut donc n'avoir qu'une seule machine avec adresse IP fixe, le serveur DH. À la maison, il peut s'agir de la box Internet ou d'un routeur filaire ou WiFi.
Le mécanisme de base de la communication est BOOTP (avec trame UDP). Quand une machine est démarrée, elle n'a aucune information sur sa configuration réseau, et surtout, l'utilisateur ne doit rien faire de particulier pour trouver une adresse IP. Pour y parvenir, la technique utilisée est le broadcast : pour trouver et dialoguer avec un serveur DH, la machine va simplement émettre un paquet spécial de broadcast (broadcast sur 255.255.255.255 avec d'autres informations comme le type de requête, les ports de connexion...) sur le réseau local. Lorsque le serveur DH recevra le paquet de broadcast, il renverra un autre paquet de broadcast (n'oubliez pas que le client – l'appareil souhaitant se connecter – n'a pas forcément son adresse IP et donc, qu'il n'est pas joignable directement) contenant toutes les informations requises pour le client.
On pourrait croire qu'un seul paquet peut suffire à la bonne marche du protocole. En fait, il existe plusieurs types de paquets DH susceptibles d'être émis soit par le client pour le ou les serveurs, soit par le serveur vers un client :
DHDISCOVER :pour localiser les serveurs DH disponibles
DHOFFER : réponse du serveur à un paquet DHDISCOVER, qui contient les premiers paramètres
DHREQUEST : requête diverse du client pour par exemple prolonger son bail
DHACK : réponse du serveur qui contient des paramètres et l'adresse IP du client
DHNAK : réponse du serveur pour signaler au client que son bail est échu ou si le client annonce une mauvaise configuration réseau
DHDECLINE : le client annonce au serveur que l'adresse est déjà utilisée
DHRELEASE : le client libère son adresse IP
DHINFORM : le client demande des paramètres locaux, il a déjà son adresse IP
Ainsi, le premier paquet émis par le client est un paquet de type DHDISCOVER. Le serveur répond par un paquet DHOFFER, en particulier pour soumettre une adresse IP au client. Le client établit sa configuration, puis fait un DHREQUEST pour valider son adresse IP (requête en broadcast car DHOFFER ne contient par son adresse IP). Le serveur répond simplement par un DHACK avec l'adresse IP pour confirmation de l'attribution. Normalement, cet échange est suffisant pour qu'un client obtienne une configuration réseau efficace, mais cela peut être plus ou moins long selon que le client accepte ou non l'adresse IP.
Qu'est-ce qu'un bail DH ?
Pour des raisons d'optimisation des ressources réseau, les adresses IP sont délivrées avec une date de début et une date de fin de validité. C'est ce qu'on appelle un "bail". Un client qui voit son bail arriver à terme peut demander au serveur une prolongation du bail par un DHREQUEST. De même, lorsque le serveur verra un bail arriver à terme, il émettra un paquet DHNAK pour demander au client s'il veut prolonger son bail. Si le serveur ne reçoit pas de réponse valide, le bail n'est pas renouvelé et le serveur rend disponible l'adresse IP attribuée jusque-là. C'est toute la subtilité du DH : on peut optimiser l'attribution des adresses IP en jouant sur la durée des baux. Le problème est là : si aucune adresse n'est libérée au bout d'un certain temps, plus aucune requête DH ne pourra être satisfaite, faute d'adresses à distribuer. Sur un réseau où beaucoup d'ordinateurs se branchent et se débranchent souvent (réseau d'école ou de locaux commerciaux par exemple), il est intéressant de proposer des baux de courte durée. A l'inverse, sur un réseau constitué en majorité de machines fixes, très peu souvent redémarrées, des baux de longues durées suffisent. N'oubliez pas que le DH fonctionne principalement par broadcast, et que cela peut monopoliser une partie de la bande ante sur des petits réseaux fortement sollicités.
Comment configurer un serveur DH ?
À la maison, votre box Internet ou votre routeur filaire ou WiFi se charge seul de la configuration DH. Néanmoins, rien ne vous interdit d'élaborer votre propre serveur DH grâce à un logiciel dédié. C'est l'DNS dynamiquement en fonction des adresses IP fournies par le serveur DH.