D'une manière générale, il y a trois méthodes possibles pour disposer d'une configuration IP opérationnelle:
Dans ce qui suit, nous nous intéresserons au protocole DHCP avec l'objectif de l'utiliser pour sa configuration IPv4.
Les choses se passent avec le peu de moyens dont vous disposez:
Le dialogue se fait en utilisant des datagrammes UDP. Le serveur écoute sur le port 67 et le client sur le port 68. L'opération initiale s'effectue en 4 temps. Elle est décrite de la manière suivante:
Il peut donc y avoir plusieurs serveurs DHCP sur le même réseau, mais il vaut mieux faire ça proprement tout de même et nous évoquerons cette question plus loin.
Un serveur DHCP dispose d'une plage d'adresses à distribuer à ses clients. Il tient à jour une base de données des adresses déjà utilisées et utilisées il y a peu (C'est ce qui explique que l'on récupère souvent la même adresse, le DHCP ayant horreur des changements).
Lorsqu'il attribue une adresse, il le fait par l'intermédiaire d'un bail. Ce bail a normalement une durée limitée dans le temps. Sur un réseau d'entreprise où l'on dispose largement d'assez d'adresses pour le nombre de postes et que ces derniers sont en service toute la journée, le bail peut être d'une semaine ou plus encore. Un bail long diminue le trafic réseau pour les renouvèlements 1) qui ont lieu moins souvent. En revanche, plus le bail est long, plus l'administrateur devra planifier longtemps à l'avance toute modification de l'architecture de son réseau.
Après expiration du bail, ou résiliation par le client, les informations concernant ce bail restent mémorisées dans la base de données du serveur pendant un certain temps. Bien que l'adresse IP soit disponible, elle ne sera pas attribuée en priorité à une autre machine. C'est ce qui explique que l'on retrouve souvent la même adresse d'une session à l'autre.
Dans le bail, il y a non seulement une adresse IP pour le client, avec une durée de validité, mais également d'autres informations de configuration comme:
Cette liste est loin d'être complète.2)
Lorsque le bail arrive à environ la moitié de son temps de vie, le client va essayer de renouveler ce bail, cette fois-ci en s'adressant directement au serveur qui le lui a attribué. Il n'y aura alors qu'un DHCPREQUEST et un DHCPACK.
Si, au bout des 7/8e de la durée de vie du bail en cours, ce dernier n'a pu être renouvelé, le client essayera d'obtenir un nouveau bail auprès d'un DHCP quelconque qui voudra bien lui répondre. Il pourra alors se faire que le client change d'adresse IP en cours de session. Normalement, cette situation ne devrait pas se produire, sauf en cas de panne du DHCP.
Il doit donc y avoir nécessairement un serveur DHCP par réseau physique et il doit disposer d'une adresse IP dans la même classe que celle qui constitue sa plage d'adresses ?
Non, pas nécessairement. Votre réseau physique peut être formé de plusieurs sous réseaux logiques, avec des routeurs entre chaque sous réseau et le tout peut fonctionner avec un seul serveur DHCP…
Mais alors, comment la négociation peut-elle se faire, puisque, normalement, un « broadcast » n'est pas retransmis par les routeurs ?
Les requêtes DHCP doivent pouvoir atteindre le serveur qui est situé sur un autre réseau logique, elles doivent donc passer les routeurs, ce qui n'est pas possible. Il est alors nécessaire d'installer sur un ou plusieurs routeurs un agent de relais qui va intercepter les requêtes en broadcast et les transmettre à un serveur DHCP connu de cet agent.
C'est l'agent de relais situé sur la passerelle qui va faire l'intermédiaire et le client réussira tout de même à obtenir un bail, donné par un DHCP situé sur un autre réseau et transmis par l'agent de relais.
Nous ne pousserons pas le luxe jusque là, mais la solution existe. Le serveur DHCP sera même capable d'envoyer des paramètres différents, suivant le sous réseau du client…