Inspiré de IT-Connect
Un serveur DHCP automatisera l'attribution : ✓ Adresses IP ✓ Passerelles par défaut ✓ Serveurs DNS ✓ Options réseau avancées
sudo apt update sudo apt install isc-dhcp-server -y
Éditez le fichier principal :
sudo nano /etc/dhcp/dhcpd.conf
Exemple inspiré d'IT-Connect :
# Configuration globale (d'après IT-Connect)
default-lease-time 3600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 1.1.1.1;
option broadcast-address 192.168.1.255;
}
host imprimante {
hardware ethernet 00:1A:2B:3C:4D:5E;
fixed-address 192.168.1.50;
}
option domain-name "entreprise.local"; option ntp-servers 192.168.1.10; option netbios-name-servers 192.168.1.20;
deny unknown-clients; # Bloquer les appareils non déclarés allow bootp; # Autoriser le boot réseau si nécessaire
sudo systemctl restart isc-dhcp-server sudo systemctl enable isc-dhcp-server
# Vérifier l'état sudo systemctl status isc-dhcp-server # Analyser les logs sudo tail -f /var/log/syslog | grep dhcpd
| Commande | Description |
| `dhcp-lease-list` | Lister les baux actifs |
| `dhcpd -t` | Tester la configuration |
| `journalctl -u isc-dhcp-server` | Voir les erreurs |
Problème : “No subnet declaration for eth0” Solution : Vérifier que l'IP du serveur est dans la plage déclarée
Problème : Clients ne reçoivent pas d'IP Solution : 1. Vérifier le firewall (`sudo ufw allow 67/udp`) 2. Confirmer que le service écoute (`sudo netstat -tulnp | grep dhcp`)
# Pour un réseau VLAN 10
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option routers 192.168.10.1;
}
Pour router les requêtes DHCP entre VLANs :
sudo apt install isc-dhcp-relay
<box warning|Bonnes pratiques> ✓ Toujours garder 20% d'IP hors plage pour les appareils fixes ✓ Utiliser `authoritative` pour éviter les conflits ✓ Documenter les réservations statiques </box>
<box success|Alternative> Pour les petits réseaux : dnsmasq (DHCP + DNS) :
sudo apt install dnsmasq
</box>