Chapitre 6.8Le DHCP

L'attribution automatique des adresses IP.

4 minutes de lecture

Quand tu branches ton ordinateur sur un réseau Wi-Fi, il obtient automatiquement une adresse IP, sait quel serveur DNS utiliser, et peut accéder à Internet en quelques secondes. Tu n'as rien configuré.

Qui s'en est occupé ? Le DHCP (Dynamic Host Configuration Protocol), un service qui tourne en arrière-plan et attribue automatiquement les paramètres réseau à chaque appareil qui se connecte.

C'est typiquement le genre de brique dont personne ne parle tant qu'elle fonctionne, et dont tout le monde parle le jour où elle tombe.

Le problème sans DHCP

Chaque machine connectée à un réseau a besoin de plusieurs informations pour être capable de dialoguer avec les autres.

  • Une adresse IP : son identité sur le réseau, unique parmi tous les appareils connectés.
  • Un masque de sous-réseau : l'information qui lui dit où s'arrête le réseau local et où commence le reste du monde.
  • L'adresse de la passerelle : le routeur vers lequel envoyer tout ce qui sort du réseau local.
  • L'adresse d'un serveur DNS : celui qui traduira les noms de domaine en adresses IP.

Sans DHCP, il faudrait renseigner tout ça à la main sur chaque appareil. Chez toi avec cinq appareils, c'est faisable, juste pénible. Dans une entreprise de 500 postes, c'est un travail à plein temps. Et dans un café où des dizaines de clients différents passent chaque jour, c'est impossible.

Il y a pire que la charge de travail, il y a le risque d'erreur. Deux machines configurées par mégarde avec la même adresse IP, et les deux se mettent à mal fonctionner de façon totalement incompréhensible.

Comment ça fonctionne

Quand ton appareil se connecte au réseau, il lance un processus en quatre étapes, souvent appelé DORA d'après les initiales des quatre messages échangés.

  1. Discover : ton appareil crie sur le réseau "il y a un serveur DHCP ici ?" Il ne connaît personne et n'a pas encore d'adresse, alors il envoie son message à tout le monde en même temps, ce qu'on appelle un broadcast.
  2. Offer : le serveur DHCP répond "oui, je suis là, je te propose l'adresse 192.168.1.42".
  3. Request : ton appareil accepte formellement "d'accord, je prends 192.168.1.42". Cette étape sert aussi à prévenir les autres serveurs DHCP éventuels que leur offre n'a pas été retenue.
  4. Acknowledge : le serveur confirme, note l'attribution dans sa table, et envoie au passage tous les autres paramètres réseau.

Tout ça se passe en quelques dizaines de millisecondes, de façon parfaitement invisible. Le DHCP s'appuie sur UDP, le protocole de transport rapide et sans accusé de réception que nous avons évoqué dans le chapitre sur TCP/IP, et passe par les ports 67 et 68, une notion que nous verrons juste après.

Ce que le serveur transmet vraiment

On résume souvent le DHCP à "il donne une adresse IP", mais il transmet en réalité tout un jeu de paramètres, appelés options DHCP. Les plus courants sont le masque de sous-réseau, la passerelle, les serveurs DNS et la durée du bail.

En entreprise, on va bien plus loin. Le serveur DHCP peut indiquer l'adresse d'un serveur de temps pour synchroniser les horloges, le nom de domaine interne à utiliser, ou l'adresse d'un serveur depuis lequel un téléphone IP va télécharger sa configuration. C'est ce qui permet de déballer un téléphone de bureau, de le brancher, et de le voir se configurer tout seul.

Le bail (lease)

L'adresse IP attribuée par DHCP n'est pas permanente. Elle est louée pour une durée limitée, appelée bail, ou lease en anglais.

Chez toi, le bail dure souvent 24 heures. Dans un café, il peut être réduit à une heure, puisque les clients se succèdent vite. À la moitié du bail, ton appareil demande spontanément un renouvellement au serveur, sans attendre l'expiration. S'il n'obtient pas de réponse, il réessaie plus tard, puis relance un cycle complet.

Quand un bail expire sans renouvellement, parce que l'appareil est parti, l'adresse retourne dans le pot commun et pourra être réattribuée à quelqu'un d'autre.

Exemple :

Un hôtel dispose d'une plage de 200 adresses et d'un bail d'une heure. Sur une journée, il peut accueillir bien plus de 200 clients, tant qu'ils ne sont pas tous connectés simultanément. Le même hôtel avec un bail de 24 heures se retrouverait saturé en fin de matinée, avec des dizaines d'adresses réservées à des téléphones déjà repartis.

Adresses fixes et réservations

Certaines machines ont besoin d'une adresse stable. Une imprimante, un serveur, une caméra, un NAS. Si leur adresse change toutes les nuits, plus rien de ce qui pointe vers elles ne fonctionne.

Il y a deux façons de régler ça. La première consiste à configurer l'adresse en dur sur la machine, en dehors de la plage gérée par le DHCP. La seconde, plus élégante, est la réservation. On dit au serveur DHCP "cet appareil précis recevra toujours cette adresse". L'appareil continue de faire sa demande normalement et reçoit invariablement la même réponse.

La reconnaissance se fait grâce à l'adresse MAC, croisée dans le chapitre sur TCP/IP. C'est en quelque sorte le numéro de série de la puce réseau, par opposition à l'adresse IP qui n'est qu'une adresse temporaire.

Sur les smartphones récents, une fonction d'adresse MAC aléatoire est souvent activée par défaut pour éviter le pistage d'un réseau Wi-Fi à l'autre. Elle a un effet de bord amusant, ton téléphone peut apparaître comme un nouvel appareil à chaque connexion, et les réservations DHCP faites sur son ancienne adresse MAC cessent de fonctionner.

Quand ça déraille

Trois pannes reviennent régulièrement.

La première est l'absence de réponse du serveur. L'appareil s'attribue alors tout seul une adresse en 169.254.x.x, ce qu'on appelle une adresse de lien local. Il peut éventuellement parler aux autres machines du même câble, mais il n'ira nulle part sur Internet. Si tu vois une adresse commençant par 169.254 dans tes paramètres réseau, le diagnostic est immédiat, le DHCP n'a pas répondu.

La deuxième est l'épuisement de la plage. Tous les appareils qui arrivent ensuite restent sans adresse. C'est le grand classique du séminaire d'entreprise où 300 personnes se connectent sur un réseau prévu pour 100.

La troisième est le serveur DHCP pirate. N'importe quelle machine du réseau peut se mettre à répondre aux demandes et distribuer de faux paramètres, notamment un faux serveur DNS ou une fausse passerelle, pour intercepter le trafic de tout le monde. C'est le plus souvent involontaire, typiquement quelqu'un qui branche sa box personnelle sur le réseau de l'entreprise, mais le protocole n'ayant aucun mécanisme d'authentification, l'attaque volontaire est tout aussi simple.

Qui fait tourner le DHCP ?

Chez toi, c'est ta box Internet qui joue le rôle de serveur DHCP. Elle est configurée d'usine pour attribuer des adresses dans une plage prédéfinie, par exemple de 192.168.1.10 à 192.168.1.254, en gardant les premières adresses pour elle-même et pour d'éventuelles machines fixes.

En entreprise, le service tourne généralement sur un serveur dédié ou sur les équipements réseau, avec des réglages bien plus fins. Réservations pour les imprimantes, plage séparée et isolée pour le Wi-Fi visiteurs, durées de bail adaptées à chaque usage.

De mon expérience, le DHCP fait partie de ces protocoles qu'on découvre uniquement le jour de la panne. Quelqu'un signale que "le Wi-Fi ne marche plus", alors que le Wi-Fi fonctionne très bien et que c'est simplement la distribution d'adresses qui s'est arrêtée. Savoir que cette étape existe, et reconnaître une adresse en 169.254, fait gagner un temps fou dans la discussion avec l'équipe technique.

PrécédentLa programmation objet Tous les chapitres