Comprendre le protocole DHCP, installer et configurer un serveur DHCP sur Debian avec isc-dhcp-server.
Debian avec accès root. IP statique configurée sur le serveur. Connaître les bases de l'adressage IP (masques, passerelle).
DHCP (Dynamic Host Configuration Protocol) attribue automatiquement une adresse IP et des paramètres réseau aux clients. La procédure DORA se déroule en 4 étapes :
| Étape | Message | Description |
|---|---|---|
| D | DISCOVER | Le client envoie un broadcast : qui peut me donner une IP ? |
| O | OFFER | Le serveur répond : je t'offre 192.168.1.100 pour 24h |
| R | REQUEST | Le client demande officiellement : je prends cette IP |
| A | ACK | Le serveur confirme : c'est accordé, voici les paramètres |
| Option DHCP | Numéro | Rôle |
|---|---|---|
| Subnet Mask | 1 | Masque de sous-réseau |
| Router | 3 | Passerelle par défaut |
| DNS Servers | 6 | Serveurs DNS |
| Hostname | 12 | Nom d'hôte du client |
| Lease Time | 51 | Durée du bail en secondes |
| TFTP Server | 66 | Serveur TFTP pour PXE boot |
sudo apt update && sudo apt install isc-dhcp-server -y
# Définir l'interface d'écoute
sudo nano /etc/default/isc-dhcp-server
# /etc/default/isc-dhcp-server
INTERFACESv4="eth0" # Remplacer par votre interface LAN (ip a pour vérifier)
INTERFACESv6=""
sudo nano /etc/dhcp/dhcpd.conf
# /etc/dhcp/dhcpd.conf # Paramètres globaux default-lease-time 86400; # Bail par défaut : 24h max-lease-time 604800; # Bail maximum : 7 jours authoritative; # Ce serveur fait autorité sur le réseau # Pool d'adresses pour le réseau 192.168.1.0/24 subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; # Plage attribuable option routers 192.168.1.1; # Passerelle option subnet-mask 255.255.255.0; # Masque option domain-name-servers 192.168.1.10, 8.8.8.8; # DNS option domain-name "lycee.local"; # Domaine DNS }
# Vérifier la configuration sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf # Démarrer le service sudo systemctl enable --now isc-dhcp-server sudo systemctl status isc-dhcp-server
# Dans /etc/dhcp/dhcpd.conf, ajouter dans le bloc subnet :
host serveur-web {
hardware ethernet aa:bb:cc:dd:ee:ff;
fixed-address 192.168.1.10;
option host-name "serveur-web";
}
host pc-etudiant-01 {
hardware ethernet 11:22:33:44:55:66;
fixed-address 192.168.1.50;
}
# Après modification, recharger
sudo systemctl reload isc-dhcp-server
# Voir les baux DHCP actifs cat /var/lib/dhcp/dhcpd.leases # Voir les logs en temps réel sudo journalctl -u isc-dhcp-server -f # Tester depuis un client Linux sudo dhclient -v eth0 # Renouveler le bail DHCP (client Linux) sudo dhclient -r eth0 && sudo dhclient eth0 # Voir l'adresse obtenue ip addr show eth0
✅ Réponse : Discover, Offer, Request, Acknowledge
✅ Réponse : option routers
✅ Réponse : En ajoutant un bloc host avec hardware ethernet et fixed-address
✅ Réponse : dhcpd -t -cf /etc/dhcp/dhcpd.conf
✅ Réponse : /var/lib/dhcp/dhcpd.leases