Cours de Serveur DHCP en PDF (Intermédiaire)
Serveur DHCP sous Linux : Ce qu'il faut savoir. Un serveur DHCP (Dynamic Host Configuration Protocol) attribue automatiquement des adresses IP et d'autres paramètres de configuration aux hôtes d'un réseau. Pour les environnements Linux, la mise en œuvre courante repose sur le paquet ISC DHCP Server qui fournit les outils et le démon dhcpd pour gérer les baux et les options réseau. Ce PDF de 3 pages fournit des exemples pratiques, commandes et bonnes pratiques pour une configuration de niveau intermédiaire sous Linux.
🎯 Ce que vous allez apprendre
- Présentation du serveur DHCP : Comprendre le rôle et les fonctionnalités d'un serveur DHCP dans un réseau.
- Installation et utilisation de base du serveur : Installer le paquet ISC DHCP Server et lancer le service.
- Configuration du serveur DHCP : Configurer les sous-réseaux (
subnet), plages d'adresses, bail DHCP et options (routeur, DNS) ; inclut le redémarrage du service. - Réservation d'adresses MAC : Réserver des adresses IP statiques pour des clients DHCP spécifiques.
- Vérification et diagnostic : Suivre les attributions, consulter les logs et contrôler l'état du service.
Installation et démarrage
Sur les distributions basées Debian/Ubuntu, installez le paquet isc-dhcp-server. Exemples et commandes pour Debian 11 / Debian 12 :
sudo apt update
sudo apt install isc-dhcp-server
sudo systemctl enable --now isc-dhcp-server
Après modification de la configuration, appliquez les changements :
sudo systemctl restart isc-dhcp-server
Définition de l'interface réseau
Avant de démarrer le service, éditez /etc/default/isc-dhcp-server pour spécifier l'interface utilisée (ex : eth0) :
# /etc/default/isc-dhcp-server
# Interfaces IPv4 sur lesquelles écouter
INTERFACESv4="eth0"
Pourquoi utiliser un serveur DHCP sous Linux ?
Un serveur DHCP centralise la gestion des adresses IP et des paramètres réseau, réduisant les erreurs de configuration manuelle et facilitant l'automatisation. Sous Linux, les solutions open source comme isc-dhcp-server offrent une grande flexibilité : définition fine des subnet et des réservations d'adresse IP statique linux, intégration avec les services DNS et scripts de gestion des baux. Cette approche convient pour des infrastructures locales, des laboratoires ou des environnements de production à taille moyenne.
Architecture et fonctionnement du protocole DHCP
Le protocole DHCP s'appuie sur l'échange de messages entre client et serveur pour attribuer une adresse et des paramètres réseau. Il gère les baux (durée d'attribution) et les réservations d'adresses IP pour des clients identifiés par leur adresse MAC. La notion de subnet est centrale pour définir plages, routeurs et options applicables. Le protocole DHCP fonctionne à la couche Application du modèle OSI et utilise UDP pour le transport (ports 67/68).
Cycle DORA (Discover, Offer, Request, Ack)
Le cycle DORA décrit l'échange standard : le client envoie un Discover, le serveur répond avec une Offer, le client renvoie une Request pour accepter l'offre, puis le serveur confirme par un Ack. Ce flux permet l'attribution automatisée d'une adresse IP et la mise en place du bail dynamique.
Fichiers de configuration et logs sous Linux
Les emplacements à connaître : le fichier principal /etc/dhcp/dhcpd.conf, le fichier de définition d'interface /etc/default/isc-dhcp-server et les journaux système. Les logs permettent de suivre les attributions et d'identifier les erreurs au démarrage ou lors des demandes des clients.
Configuration du fichier dhcpd.conf
Le fichier principal est /etc/dhcp/dhcpd.conf. On y définit notamment :
- les blocs
subnetcontenant la plagerange, le routeur (option routers) et les DNS (option domain-name-servers), - les durées de bail (
default-lease-time,max-lease-time), - les réservations pour une
adresse IP statique linuxviahost/fixed-addressen relation avec l'adresse MAC du client.
Un exemple fourni par le paquet est disponible ici :
/usr/share/doc/isc-dhcp-server/examples/dhcpd.conf.example
Les messages liés au serveur DHCP apparaissent dans le journal système, par exemple /var/log/syslog sur Debian/Ubuntu. Pour suivre les attributions en temps réel :
tail -f /var/log/syslog
Suivi des baux actifs
Pour visualiser les adresses actuellement attribuées, consultez le fichier des baux : cat /var/lib/dhcp/dhcpd.leases. Le fichier des baux contient l'historique et l'état des attributions : adresse, MAC, durée du bail et timestamp. Pour dépanner, combinez grep et tail pour isoler un client et détecter conflits ou renouvellements fréquents.
Diagnostic et résolution des erreurs courantes
Contrôlez systématiquement l'état du service et les logs après toute modification. Erreurs fréquentes : interface non définie dans /etc/default/isc-dhcp-server, conflits de plages range, ou mauvais format de la subnet. L'usage des logs système et du fichier de baux facilite l'identification.
Vérification de la syntaxe
Avant de redémarrer le service, validez la syntaxe du fichier de configuration :
dhcpd -t -cf /etc/dhcp/dhcpd.conf
Cette vérification préventive évite l'interruption du service due à une erreur de format.
Cas d'usage : Réservation IP pour imprimantes
Les imprimantes réseau et autres périphériques partagés bénéficient d'une adresse stable. Plutôt que de configurer une IP statique sur l'appareil, effectuez une réservation DHCP via un bloc host lié à l'adresse MAC, ce qui centralise la gestion sans modifier la configuration de chaque périphérique. La réservation garantit une visibilité constante sur le réseau et simplifie la maintenance.
Installation de l'agent de relais DHCP
Sur les topologies multi-segments, installez l'agent de relais pour transmettre les requêtes DHCP entre VLANs ou sous-réseaux. Sur Debian/Ubuntu :
sudo apt update
sudo apt install isc-dhcp-relay
Configurez ensuite l'agent pour qu'il relaie vers l'adresse IP du serveur DHCP central. L'agent de relais permet de conserver un serveur centralisé tout en desservant plusieurs segments réseau.
Sécurisation du serveur DHCP sous Linux
Limitez l'exposition du service en restreignant l'accès réseau aux interfaces nécessaires et à l'aide d'un pare-feu (filtrer UDP 67/68 selon l'architecture). Utilisez des réservations pour les équipements critiques et consignez les changements de configuration dans un contrôle de version. Dans des environnements d'entreprise, combinez contrôles d'accès, surveillance des logs et segmentation réseau pour réduire les risques d'usurpation d'adresse.
Différence entre IP Statique et Dynamique
Une adresse IP statique est attribuée manuellement et ne change pas sans intervention; elle convient aux serveurs et équipements nécessitant une adresse constante. Une IP dynamique est fournie automatiquement par le serveur DHCP et peut changer au fil des baux, simplifiant la gestion des postes clients et réduisant les erreurs de configuration manuelle.
Note technique : Le port UDP 67 est utilisé par le serveur et le port 68 par le client pour les échanges DHCP.
👤 À qui s'adresse ce cours ?
- Public cible : administrateurs systèmes et réseaux souhaitant apprendre à configurer un serveur DHCP sous Linux (niveau intermédiaire).
- Prérequis : connaissances de base en administration Linux et concepts réseau (sous-réseau, routeur, DNS).
❓ Foire Aux Questions (FAQ)
Qu'est-ce qu'un serveur DHCP ?
Un service réseau qui attribue automatiquement des adresses IP et d'autres paramètres de configuration aux hôtes (clients DHCP) d'un réseau, simplifiant la gestion des adresses et des baux DHCP.
Comment vérifier si le serveur DHCP fonctionne ?
Contrôler l'état du service avec systemctl status isc-dhcp-server et suivre les logs pour voir les attributions en temps réel avec tail -f /var/log/syslog. Vérifier également le fichier /etc/dhcp/dhcpd.conf pour détecter d'éventuelles erreurs de syntaxe à l'aide de dhcpd -t -cf /etc/dhcp/dhcpd.conf.
Document technique rédigé par Nicolas Dewaele. Contenu aligné sur la documentation officielle d'ISC et les pratiques courantes sur Debian 11/12.