Qu'est-ce qu'un serveur DHCP ?
DHCP (Dynamic Host Configuration Protocol) est un protocole réseau qui permet à un serveur d'attribuer automatiquement une adresse IP à une machine qui se connecte à un réseau. Ce protocole facilite la gestion des adresses IP en attribuant des adresses de manière dynamique (automatique) plutôt que manuelle (statique).
Le serveur DHCP est responsable de la gestion des adresses IP pour les machines d'un réseau local (LAN). Lorsqu'une machine se connecte, elle envoie une demande d'adresse IP, et le serveur DHCP répond en lui attribuant une adresse IP unique, un masque de sous-réseau, une passerelle et un serveur DNS.
Comment fonctionne le DHCP ?
1. Le processus de demande d'adresse IP
Lorsqu'une machine se connecte à un réseau pour la première fois, elle a besoin d'une adresse IP pour pouvoir communiquer avec les autres machines du réseau et accéder à Internet.
Dans la plupart des cas, la machine ne possède pas encore d'adresse IP car elle vient de rejoindre le réseau, et elle ne connaît pas l'adresse du serveur DHCP. C'est là qu'intervient le protocole DHCP.
La machine envoie une demande DHCPDISCOVER. Cette demande est envoyée en broadcast, ce qui signifie qu'elle est adressée à toutes les machines du réseau local, car au départ, elle ne sait pas encore qui est le serveur DHCP. Pour trouver le serveur DHCP il faut donc que la machine envoie la demande DHCPDISCOVER à toutes les machines (on dit que la machine "envoie un message en broadcast").
Le message DHCPDISCOVER contient généralement des informations de base sur la machine, comme son adresse MAC (qui est unique à chaque carte réseau) pour qu'une réponse puisse être envoyée à la machine qui a fait la demande.
2. Réponse du serveur DHCP
Lorsque le serveur DHCP reçoit ce message de demande, il sait qu'une machine du réseau a besoin d'une adresse IP. Le serveur vérifie donc ses plages d'adresses IP disponibles (celles qu'il peut attribuer) et choisit une adresse IP à attribuer à la machine.
Le serveur DHCP répond par un message DHCPOFFER, qui contient plusieurs informations importantes :
- Adresse IP à attribuer
- Masque de sous-réseau
- Passerelle par défaut
- Serveurs DNS
Ce message est également envoyée en broadcast, afin que la machine demandeur puisse le recevoir et accepter l'offre.
3. Acceptation de l'offre
Après avoir reçu le message DHCPOFFER du serveur DHCP, la machine doit répondre pour accepter cette offre. Elle envoie donc un message DHCPREQUEST au serveur, indiquant qu'elle accepte l'adresse IP et les autres paramètres proposés par le serveur DHCP.
4. Confirmation
Le serveur DHCP reçoit le message DHCPREQUEST et, pour confirmer l'attribution de l'adresse IP à la machine, il envoie un message DHCPACK. Ce message confirme que la machine peut maintenant utiliser l'adresse IP qui lui a été attribuée. À partir de ce moment, la machine peut commencer à communiquer avec le reste du réseau.
Comment configurer un serveur DHCP ?
Voici un exemple de configuration basique d'un serveur DHCP sur un serveur Linux utilisant isc-dhcp-server :
# Installer le serveur DHCP
sudo apt-get install isc-dhcp-server
# Modifier le fichier de configuration
sudo nano /etc/dhcp/dhcpd.conf
# Exemple de configuration :
# Définir le réseau et le masque de sous-réseau
subnet 192.168.1.0 netmask 255.255.255.0 {
# Plage d'adresses IP à attribuer
range 192.168.1.10 192.168.1.100;
# Passerelle par défaut
option routers 192.168.1.1;
# Serveurs DNS
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
# Redémarrer le service DHCP
sudo service isc-dhcp-server restart
Dans cet exemple, nous avons défini une adresse réseau (192.168.1.0) avec
un masque réseau (255.255.255.0), ce qui permet au serveur DHCP d’identifier les adresses IP
pouvant être attribuées aux différents équipements du réseau.
(voir le cours sur l'adresse IP)
Ensuite on précise qu'elle est l'adresse de la passerelle (= l'adresse du routeur).
Et enfin on précise l'adresse du serveur DNS, ici dans l'exemple le serveur DNS de Google.
(voir le cours sur le serveur DNS)
Conclusion
Le serveur DHCP est essentiel pour faciliter la gestion des adresses IP dans un réseau. Grâce à l'automatisation de l'attribution des adresses, les administrateurs peuvent éviter les conflits d'adresses et gagner du temps dans la gestion de leur infrastructure réseau.