Petit article pour parler du DHCP, le protocole de configuration dynamique des hôtes en français dans le texte !

C’est grâce à un service DHCP que nos postes de travail reçoivent automatiquement une configuration IP et peuvent parler au reste du monde ! Il est à noter que le DHCP n’est pas du tout un service réservé aux entreprises, au contraire, vous l’utilisez chez vous peut être même sans le savoir ! Vous ne me croyez pas ? Jetez un coup d’œil aux configurations de votre BOX internet alors…

Dans cette petite introduction, nous allons découvrir ce qu’est le service DHCP, comment il fonctionne, quels sont ses intérêts et ce qu’on peut faire avec. GO ! aggressive


Introduction au Dynamic Host Configuration Protocol

Bon parlons peu mais parlons bien ! Cet article va introduire le concept de DHCP, une notion bien connue en entreprise et qui, ne nous le cachons pas, fais gagner un temps précieux aux informaticiens !

Comme d’habitude, on reste dans le « survol » et on ne parlera pas de l’histoire du protocole DHCP, de ses dates de création ou encore de ses RFCs mais plutôt de son utilité et de ce qu’il peut nous apporter ! Non pas parce que le reste, on s’en moque, mais tout simplement parce que ce n’est pas important dans notre contexte de découverte du DHCP.

Pour les plus intrépides qui n’ont pas peur du mal de tête, laugh consultez directement les RFCs officielles sur le sujet au lien suivant : RFC2131 (en)

 

Qu’est ce que le DHCP ?

Le service DHCP, ou bien le « Dynamic Host Configuration Protocol » est un service TCP/IP, qu’on installe en général sur une machine serveur mais aussi parfois sur un routeur (box internet, bornes wifi…) , et qui permet d’automatiser la configuration réseau des équipements d’une infrastructure.

Pour simplifier vulgairement le rôle d’un serveur DHCP dans une infra, disons qu’il évite aux admins de configurer manuellement tout les postes de travail un par un.

En fait le service DHCP va attribuer automatiquement, et de façon totalement transparente pour les utilisateurs, une configuration réseau complète, c’est à dire par exemples une adresse IP, un masque, une adresse de passerelle et une adresse de DNS, à tous les postes clients de l’environnement qui lui en feront la demande. On parle alors d’attribution « dynamique » d’adresses IP contrairement à une attribution manuelle dite « statique » ou « fixe« .

 

Quels sont les avantages d’avoir un serveur DHCP ?

Le 1er avantage, comme dit dans le paragraphe précédent, c’est déjà que les techniciens informatiques ne vont pas devoir passer sur l’ensemble des ordinateurs pour leur attribuer une configuration IP manuellement. Et croyez moi, quand il y en a 25, c’est déjà assez pénible, mais imaginez quand il y en a 1300…

Second point, la gestion de l’adressage IP de l’environnement est à la fois automatisée, mais aussi et surtout centralisée. En effet, nous aurons au moins un (mais souvent plusieurs) serveur qui va s’occuper de configurer l’adressage IP des postes qui en font la demande. Ce serveur aura une « liste » d’adresses à distribuer avec des paramètres complémentaires, des « options » comme par exemple la passerelle et le serveur DNS.

Avantage dans l’avantage, comme la gestion est centralisée, si demain l’adresse de votre serveur DNS change (ou tout autre paramètre), vous n’aurez qu’à déclarer la nouvelle adresse IP au service DHCP qui se chargera de la distribuer aux postes clients à leur redémarrage.

Autre point, comme il n’y a pas d’intervention humaine, il a diminution du risque de conflit d’adresses IP dans l’infrastructure. Je rappelle qu’une adresse IP doit être unique dans un réseau. Quand le serveur DHCP attribue une adresse à un équipement, celle-ci lui restera attribuée pour une durée définie, appelé un « bail ». Cette adresse ne pourra donc pas être attribuée de nouveau tant que la fin du bail n’est pas atteinte.

On résume les principaux avantages du DHCP :

 

Comment ça fonctionne le DHCP ?

Pour qu’un équipement puisse recevoir une configuration réseau, il doit en faire la demande. Vous pouvez tout à fait avoir un équipement sur lequel vous configurer vous même l’adressage IP, comme sur un serveur par exemple ou encore un routeur. Par défaut, tout les postes de travail sont en attente d’une configuration automatique. Lorsque l’on connecte un ordinateur à un réseau, celui ci va chercher un serveur DHCP pour lui transmettre les informations dont il a besoin pour communiquer avec le reste du réseau.

Si on effectue une capture des trames sur un réseau lorsqu’un poste de travail souhaite obtenir une configuration réseau automatiquement, on devrait voir apparaître ceci :

Décryptons ces trames ensemble.

Dans la 1ère ligne, on voit une demande émanant de la source 0.0.0.0 qui représente en fait notre poste de travail, qui envoie un message à destination de 255.255.255.255. On dit alors que l’ordinateur, le « client », diffuse en « broadcast » un message sur l’ensemble du réseau. Un broadcast ça signifie envoyer une requête à destination de l’adresse 255.255.255.255, soit, à tout le monde sur le réseau où l’on se trouve

Info + : L’adresse de broadcast 255.255.255.255 est générale pour le cas d’un poste cherchant un DHCP étant donné qu’il n’appartient pas encore à un réseau. Des broadcasts peuvent être émis pour d’autres usages par un poste appartenant par exemple au réseau 192.168.10.0/24. Dans ce cas, le broadcast sera émis à l’attention de l’adresse 192.168.10.255 et va donc cibler toutes les adresses du réseau 192.168.10.0/24.

En fait dans ce broadcast, on trouvera une requête appelée « DHCP DISCOVER« . Cette requête va contenir un paquet, un « datagramme« , contenant entres autres, l’adresse physique de la carte réseau de la machine, l’adresse MAC, et sera émise à destination du port 67, c’est à dire le port d’écoute utilisés par les serveurs DHCP pour ce protocole. Le but de ce datagramme est de découvrir sur le réseau où se situe le client, un serveur DHCP.

Le (ou les) serveur(s) DHCP se trouvant sur le réseau et qui va recevoir le datagramme va alors répondre à son tour par une requête « DHCP OFFER«  sur le port 68 cette fois-ci qui est le port d’écoute utilisé par le protocole DHCP pour les clients. Il va en fait proposer au client, une potentielle configuration IP.

Le client va alors retenir la 1ère offre qu’il recevra d’un serveur DHCP et va de nouveau diffuser un datagramme avec la requête « DCHP REQUEST« . Dans ce datagramme, on trouvera l’adresse IP du serveur DHCP qui a répondu à la demande du client et également l’adresse IP qui lui a été proposée. En fait, cette nouvelle requête sert à demander au serveur DHCP de lui assigner l’adresse offerte et de lui transmettre les éventuelles autres options nécessaires. S’il y a plusieurs serveurs DHCP dans l’environnement qui ont eux aussi fait une offre, ce datagramme va également leur signaler que leur offre n’a pas été retenue.

Et pour terminer, le serveur DHCP choisi envoie un dernier datagramme servant d’accusé de réception appelé « DHCP ACK« . Cette dernière requête assigne au client son adresse IP et lui transmet toutes les informations dont il aura besoin comme par exemple, le masque de sous-réseau, la durée du bail de cette adresse, et les options éventuelles (DNS, NTP, routeur…).

Plutôt simple non ? On récapitule le fonctionnement du DHCP, ou plutôt les échanges entre le client et le serveur :

Info + : On rencontrera également d’autres types de requête entre les clients et les serveurs DHCP comme par exemple « DHCP RELEASE » qui spécifie au serveur que le client libère son adresse IP, ou encore « DHCP INFORM » qui est une demande d’un client ayant déjà son adresse IP attribuée mais qui souhaite obtenir les autres informations (pour être à jour au niveau de la configuration réseau dans le cas où le bail n’est pas encore arrivé à terme par exemple). 

 

Que se passe-t-il si aucun serveur DHCP ne me répond ?

Dans ce cas, vous aurez une adresse attribuée automatiquement dans le réseau 169.254.0.0/16. Ce réseau est spécifique et est connu sous le nom de réseau APIPA (« Automatic Private Internet Protocol« ). APIPA c’est un processus qui permet à un système de s’attribuer lui même une adresse IP lorsqu’aucun serveur DHCP n’est joignable.

La carte réseau du client envoie des requêtes sur l’adresse de broadcast pour tenter de communiquer avec un serveur DHCP. Si elle ne reçoit pas de réponse, elle va s’attribuer automatiquement une adresse située dans le réseau APIPA. Attention, le 169.254.0.0/16 est un réseau privé, complètement isolé et non routable ! C’est à dire que votre machine ne pourra pas communiquer avec d’autres et donc par conséquent, n’accédera pas à internet.

Les raisons pour lesquels un poste ne recevrait pas une adresse d’un DHCP sont nombreuses. En voici quelques une au hasard :

  • Il n’y a pas de serveur DHCP sur le réseau
  • Le service DHCP n’a plus d’adresses à fournir
  • Le serveur DHCP n’est pas joignable (problème réseau ou système)
  • Des stratégies de filtrage par adresses MAC sont appliquées sur le serveur DHCP et votre machine ne respectent pas les conditions
  • Le port du switch sur lequel est branché votre machine est désactivé

 

Quelles sont les fonctionnalités principales d’un serveur DHCP ?

Quand on a déployé le service DHCP dans son infrastructure, la 1ère chose à faire c’est de créer des étendues pour les réseaux que l’on veut desservir, et d’y définir des plages, aussi appelées des « pools » d’adresses IP que le DCHP devra distribuer sur ladite étendue.

On peut également attribuer des options à notre étendue comme par exemple l’option « Routeur » qui va définir l’adresse de passerelle de ce réseau. On parle d’une « option d’étendue » car cette option ne va s’appliquer que sur l’étendue où elle est définie.

Si l’on souhaite appliquer une option à toutes les étendues du serveur DHCP, il faudra alors utiliser une « option de serveur » comme par exemple l’option « Serveur DNS ». Une option de serveur se gère en dehors des étendues.

Autre possibilité, ajouter des plages d’exclusions à l’intérieur de notre pool d’adresse. Cela signifie que l’on peut définir une plage d’adresses IP qui ne seront pas attribuées par le DHCP. Par exemple, on peut définir le pool à distribuer sur 192.168.10.1 à 192.168.10.254 mais décider que les 100 premières adresses ne devront pas être distribuées mais qu’on souhaite les garder pour les attribuer manuellement. On devra alors exclure la plage d’adresses allant de 192.168.10.1 à 192.168.10.100.

Autre fonctionnalité bien utile, la fonction « Réservation », qui permet comme son nom l’indique de réserver une adresse IP spécifique de l’étendue à un client particulier en spécifiant son adresse MAC. On peut l’utiliser par exemple pour une imprimante. Le serveur DHCP saura que si telle adresse MAC en fait la demande, elle devra recevoir telle adresse IP et non pas une autre.

Voilà nous avons un modèle de base d’une possible configuration du service DHCP avec ses fonctionnalités majeures !

 

Bon, je suis convaincu ! Comment on installe et configure un serveur DHCP ?

Oh mais quelle bonne question ! angel

Pour y répondre, rien de mieux qu’un petit tuto dans un autre article ! blush 

Voir l’article version Windows : Installation et paramétrage du service DHCP sous Windows

Voir l’article version Linux : Installation et paramétrage du service DHCP sous Linux

 

Voilà qui clôture cette petite introduction au DHCP ! Un service très pratique qui n’a (presque) rien de très compliqué à comprendre et mettre en place.

See U soon ! declare

Introduction au DHCP

Articles pouvant vous intéresser