DHCP
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
DHCP — Dynamic Host Configuration Protocol
Le DHCP (Dynamic Host Configuration Protocol) est un protocole réseau qui permet d'attribuer automatiquement aux ordinateurs, imprimantes, smartphones et autres équipements les paramètres nécessaires pour communiquer sur un réseau IP.
Il évite de configurer manuellement chaque appareil et réduit les risques d'erreurs d'adressage.
1. Qu'est-ce que le DHCP ?
Le DHCP est un service réseau qui attribue automatiquement une configuration IP aux équipements clients.
Sans DHCP, l'administrateur doit généralement configurer manuellement sur chaque appareil :
- L'adresse IP.
- Le masque de sous-réseau.
- La passerelle par défaut.
- Les serveurs DNS.
- La durée de validité de la configuration IP.
Avec DHCP, ces informations sont distribuées automatiquement par un serveur DHCP.
Exemple concret
Un ordinateur se connecte au réseau de l'entreprise. Il demande une configuration IP. Le serveur DHCP lui attribue les paramètres suivants :
| Paramètre | Valeur attribuée | Rôle |
|---|---|---|
| Adresse IP | 192.168.1.50 | Identifie l'équipement sur le réseau. |
| Masque | 255.255.255.0 | Définit la partie réseau et la partie hôte. |
| Passerelle | 192.168.1.1 | Permet de communiquer avec les autres réseaux. |
| DNS | 192.168.1.10 | Permet de résoudre les noms des machines et des domaines. |
| Durée du bail | 8 jours, par exemple | Durée de validité du bail configuré par le serveur. |
Attention : ces valeurs sont des exemples. Elles doivent être adaptées au plan d'adressage du réseau.
2. Fonctionnement du DHCP
Le fonctionnement classique du DHCP IPv4 repose sur quatre étapes, souvent appelées DORA.
| Étape | Message | Description |
|---|---|---|
| 1 | DHCP Discover | Le client recherche un serveur DHCP disponible. |
| 2 | DHCP Offer | Le serveur propose une configuration IP. |
| 3 | DHCP Request | Le client demande l'utilisation de la configuration proposée. |
| 4 | DHCP ACK | Le serveur confirme l'attribution du bail. |
Schéma du fonctionnement
+-------------------+ +-------------------+
| Client DHCP | | Serveur DHCP |
| | -- DHCP Discover -->| |
| |<--- DHCP Offer -----| |
| | -- DHCP Request --->| |
| |<----- DHCP ACK -----| |
+-------------------+ +-------------------+
|
+--> Configuration IP utilisable
Au démarrage, le client n'a pas nécessairement d'adresse IP utilisable. Les premières communications DHCP IPv4 utilisent donc généralement des messages diffusés sur le réseau local.
3. Les ports utilisés par DHCP
Le DHCP IPv4 utilise UDP.
| Port UDP | Utilisation |
|---|---|
| 67 | Port du serveur DHCP. |
| 68 | Port du client DHCP. |
Le DHCP IPv6 utilise les ports UDP 547 côté serveur et 546 côté client.
Le DHCP IPv4 et le DHCP IPv6 sont deux mécanismes distincts. La configuration d'un serveur DHCP IPv4 ne signifie pas que le réseau dispose automatiquement d'un service DHCPv6.
4. DHCP, adresse IP et bail
Qu'est-ce qu'un bail DHCP ?
Un bail DHCP est une attribution d'adresse IP valable pendant une durée déterminée.
Pendant cette période, le client peut utiliser l'adresse attribuée conformément aux conditions du serveur.
Avant l'expiration du bail, le client tente généralement de renouveler son attribution. Si le renouvellement échoue, il peut effectuer de nouvelles tentatives selon les règles du protocole.
Les principales notions
- Bail : attribution temporaire d'une adresse IP.
- Pool d'adresses : ensemble des adresses disponibles pour les clients.
- Étendue DHCP : plage d'adresses et paramètres associés, notamment sous Windows Server.
- Réservation DHCP : attribution d'une adresse déterminée à un client identifié, généralement par son adresse MAC en DHCPv4.
- Exclusion : adresse ou plage retirée des adresses distribuables automatiquement.
- Conflit IP : situation dans laquelle plusieurs équipements utilisent la même adresse IP.
Exemple de plage DHCP
Pour un réseau 192.168.1.0/24 :
| Élément | Exemple |
|---|---|
| Adresse réseau | 192.168.1.0 |
| Passerelle | 192.168.1.1 |
| Serveur DNS | 192.168.1.10 |
| Serveurs et imprimantes à adresse fixe | 192.168.1.2 à 192.168.1.49 |
| Plage DHCP | 192.168.1.50 à 192.168.1.200 |
| Adresse de diffusion | 192.168.1.255 |
Dans cet exemple, les adresses réservées aux équipements fixes sont exclues de la plage dynamique pour éviter les conflits. Le plan doit être adapté à l'infrastructure réelle.
5. Les options DHCP
Le serveur DHCP peut distribuer des paramètres supplémentaires grâce aux options DHCP.
| Option | Nom | Fonction |
|---|---|---|
| 003 | Routeur | Indique la passerelle par défaut. |
| 006 | Serveurs DNS | Indique les serveurs DNS à utiliser. |
| 015 | Nom de domaine DNS | Indique le suffixe DNS du client. |
| 042 | Serveurs NTP | Indique des serveurs de synchronisation horaire lorsque cette option est utilisée. |
| 051 | Durée du bail | Définit la durée du bail DHCP IPv4. |
| 066 | Nom du serveur TFTP | Peut être utilisé dans certains environnements de démarrage réseau. |
| 067 | Nom du fichier de démarrage | Peut désigner un fichier de démarrage réseau. |
| 119 | Liste de recherche de domaines | Fournit une liste de suffixes de recherche DNS si elle est prise en charge par le client. |
Les options disponibles et leur prise en charge dépendent du serveur, du client et du scénario de déploiement.
6. DHCP et DNS : quelle différence ?
Le DHCP et le DNS remplissent des fonctions différentes mais complémentaires.
| Service | Fonction | Exemple |
|---|---|---|
| DHCP | Attribue la configuration IP au client. | L'ordinateur reçoit 192.168.1.50. |
| DNS | Résout les noms en adresses IP et inversement selon les enregistrements disponibles. | Le nom serveur.ad.pat-informatik.test est résolu vers une adresse IP. |
Dans un domaine Active Directory, le DNS est essentiel au fonctionnement des services de domaine. Un client de domaine doit utiliser les serveurs DNS appropriés, généralement ceux de l'infrastructure Active Directory, et non un DNS public configuré directement comme seul serveur DNS.
Le serveur DHCP Windows peut aussi être configuré pour enregistrer ou mettre à jour certains enregistrements DNS au nom des clients.
7. DHCP sous Windows Server
Windows Server permet d'installer le rôle DHCP pour gérer les adresses IP d'un réseau.
7.1. Préparer le serveur
Avant d'installer le rôle DHCP, vérifier les éléments suivants :
- Le serveur dispose d'une adresse IP fixe.
- Le masque et la passerelle sont corrects.
- Les paramètres DNS sont adaptés à l'environnement.
- Le plan d'adressage est défini.
- La plage DHCP ne chevauche pas les adresses utilisées par les serveurs, imprimantes ou autres équipements à adresse fixe.
- Le routeur ou pare-feu autorise le trafic DHCP nécessaire.
- Aucun autre serveur DHCP non prévu ne distribue déjà des adresses sur le même réseau.
7.2. Installer le rôle DHCP avec l'interface graphique
1. Ouvrir le Gestionnaire de serveur. 2. Cliquer sur Gérer. 3. Sélectionner Ajouter des rôles et fonctionnalités. 4. Choisir l'installation basée sur un rôle ou une fonctionnalité. 5. Sélectionner le serveur cible. 6. Cocher Serveur DHCP. 7. Accepter l'ajout des fonctionnalités nécessaires. 8. Terminer l'assistant et lancer l'installation. 9. Cliquer sur la notification du Gestionnaire de serveur pour effectuer la configuration DHCP post-installation si elle est proposée.
Dans un domaine Active Directory, le serveur DHCP doit être autorisé dans Active Directory pour distribuer des adresses. Cette autorisation n'est pas la même chose que l'activation d'une étendue.
7.3. Installer le rôle avec PowerShell
Ouvrir PowerShell en tant qu'administrateur :
Install-WindowsFeature DHCP -IncludeManagementTools
Pour vérifier l'installation :
Get-WindowsFeature DHCP
Pour afficher l'état du service DHCP Server :
Get-Service DHCPServer
7.4. Autoriser le serveur DHCP dans Active Directory
Dans un environnement Active Directory, utiliser un compte disposant des droits nécessaires.
Exemple à adapter au nom réel du serveur et au domaine :
Add-DhcpServerInDC ` -DnsName "SRV-DHCP.ad.pat-informatik.test" ` -IPAddress 192.168.1.10
Vérifier les serveurs DHCP autorisés :
Get-DhcpServerInDC
Important : ne pas copier les valeurs de cet exemple sans les adapter. Le nom DNS, l'adresse IP et le domaine doivent correspondre au serveur réel.
7.5. Créer une étendue DHCP IPv4
Exemple : réseau 192.168.1.0/24, plage dynamique 192.168.1.50 à 192.168.1.200.
Add-DhcpServerv4Scope ` -Name "LAN-Principal" ` -StartRange 192.168.1.50 ` -EndRange 192.168.1.200 ` -SubnetMask 255.255.255.0 ` -State Active
Afficher les étendues configurées :
Get-DhcpServerv4Scope
Afficher les détails d'une étendue :
Get-DhcpServerv4Scope -ScopeId 192.168.1.0
7.6. Définir la passerelle et les serveurs DNS
Exemple de configuration pour l'étendue 192.168.1.0 :
Set-DhcpServerv4OptionValue ` -ScopeId 192.168.1.0 ` -Router 192.168.1.1 ` -DnsServer 192.168.1.10 ` -DnsDomain "ad.pat-informatik.test"
Dans cet exemple :
- 192.168.1.1 est la passerelle.
- 192.168.1.10 est le serveur DNS interne.
- ad.pat-informatik.test est le suffixe DNS de l'environnement.
Ces valeurs sont des exemples. Si le serveur DNS interne possède une autre adresse, il faut la remplacer.
7.7. Exclure des adresses
Si certaines adresses doivent être réservées aux équipements configurés manuellement, elles peuvent être exclues de la distribution dynamique.
Add-DhcpServerv4ExclusionRange ` -ScopeId 192.168.1.0 ` -StartRange 192.168.1.100 ` -EndRange 192.168.1.110
Vérifier les exclusions :
Get-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0
Veiller à ne pas utiliser une plage d'exclusion incompatible avec le plan d'adressage prévu.
7.8. Créer une réservation DHCP
Une réservation permet d'attribuer une adresse particulière à un client identifié, par exemple une imprimante réseau.
Exemple avec une adresse MAC fictive :
Add-DhcpServerv4Reservation ` -ScopeId 192.168.1.0 ` -IPAddress 192.168.1.60 ` -ClientId "00-11-22-33-44-55" ` -Description "Imprimante accueil"
La valeur ClientId doit correspondre à l'identifiant réel du client attendu. Pour DHCPv4 Ethernet, il correspond généralement à l'adresse MAC, mais le format accepté doit être vérifié selon le client et la version utilisée.
Afficher les réservations :
Get-DhcpServerv4Reservation -ScopeId 192.168.1.0
7.9. Consulter les baux attribués
Get-DhcpServerv4Lease -ScopeId 192.168.1.0
Pour rechercher une adresse précise :
Get-DhcpServerv4Lease -IPAddress 192.168.1.60
7.10. Configurer DHCP depuis la console graphique
1. Ouvrir le Gestionnaire de serveur. 2. Accéder à Outils puis DHCP. 3. Développer le nom du serveur. 4. Développer IPv4. 5. Créer une nouvelle étendue. 6. Renseigner le nom, la plage, le masque et les exclusions. 7. Définir la durée du bail. 8. Configurer les options de routeur et de DNS. 9. Activer l'étendue. 10. Vérifier qu'elle est active et que les clients obtiennent une adresse.
8. DHCP sous Ubuntu Linux
Sous Ubuntu, le serveur DHCP ISC a longtemps été une solution courante. Pour les nouvelles installations, il faut tenir compte de la version Ubuntu et de l'état de maintenance du logiciel. Kea DHCP est une solution moderne à évaluer pour un nouveau déploiement.
Attention : un serveur DHCP doit être configuré avec prudence. Ne démarre pas un serveur DHCP de test sur un réseau de production sans autorisation, car il pourrait distribuer de mauvaises configurations aux clients.
8.1. Vérifier l'adressage du serveur
ip address ip route resolvectl status
Le serveur DHCP doit idéalement disposer d'une adresse fixe sur l'interface qui dessert le réseau client.
8.2. Exemple de configuration Kea DHCPv4
Le fichier de configuration exact dépend du paquet et de la version installés. Le fragment suivant illustre les paramètres principaux ; il doit être intégré à la structure complète attendue par la version de Kea utilisée.
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ens33" ]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/kea-leases4.csv"
},
"valid-lifetime": 28800,
"subnet4": [
{
"subnet": "192.168.1.0/24",
"pools": [
{
"pool": "192.168.1.50 - 192.168.1.200"
}
],
"option-data": [
{
"name": "routers",
"data": "192.168.1.1"
},
{
"name": "domain-name-servers",
"data": "192.168.1.10"
},
{
"name": "domain-name",
"data": "ad.pat-informatik.test"
}
]
}
]
}
}
Dans cet exemple :
- ens33 est le nom d'interface fictif. Le remplacer par le nom réel.
- 192.168.1.0/24 est le réseau client.
- 192.168.1.50 à 192.168.1.200 est la plage distribuée.
- 28800 secondes correspondent à 8 heures.
- 192.168.1.1 est la passerelle.
- 192.168.1.10 est le DNS interne.
Le nom de fichier de configuration, le service systemd et les commandes de validation dépendent du paquet Kea installé. Vérifier la documentation de la version présente sur le serveur avant de remplacer une configuration existante.
8.3. Vérifier les services Kea
Les noms des services varient selon la version et les paquets. Pour les repérer :
systemctl list-units --type=service | grep -i kea
Pour examiner l'état d'un service identifié :
systemctl status kea-dhcp4-server
Si ce nom n'existe pas, vérifier le nom exact du service installé.
Pour consulter les journaux du service, en adaptant son nom :
journalctl -u kea-dhcp4-server
8.4. Vérifier la configuration
Utiliser l'outil de validation livré avec la version de Kea installée. Par exemple, selon le paquet :
kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Si la commande ou l'option diffère sur la version installée, consulter l'aide et la documentation de cette version avant de redémarrer le service.
9. Renouveler une adresse IP sous Windows
Pour afficher la configuration IP :
ipconfig /all
Pour libérer le bail DHCP IPv4 :
ipconfig /release
Pour demander une nouvelle configuration :
ipconfig /renew
Pour vider le cache DNS local :
ipconfig /flushdns
Ces commandes peuvent interrompre temporairement la connectivité. Elles doivent être utilisées en connaissance de cause, notamment sur un poste distant.
10. Diagnostic réseau
10.1. Vérifier l'adresse IP
ipconfig /all
Si un poste Windows affiche une adresse IPv4 automatique commençant par 169.254, cela peut indiquer qu'il n'a pas obtenu de configuration DHCPv4 utilisable. Il faut alors vérifier le réseau, le serveur DHCP et les relais éventuels.
10.2. Vérifier la passerelle
ipconfig ping 192.168.1.1
Remplacer 192.168.1.1 par la passerelle réelle. Un ping sans réponse ne prouve pas à lui seul que la passerelle est inaccessible, car ICMP peut être filtré.
10.3. Vérifier la configuration DNS
ipconfig /all nslookup serveur.ad.pat-informatik.test
Utiliser le nom et le domaine correspondant à l'infrastructure réelle.
10.4. Vérifier le serveur DHCP
Sur Windows Server :
Get-Service DHCPServer Get-DhcpServerv4Scope Get-DhcpServerv4Lease -ScopeId 192.168.1.0
Vérifier également les journaux DHCP disponibles dans l'Observateur d'événements et les journaux d'audit DHCP du serveur.
10.5. Capturer le trafic DHCP
Un outil comme Wireshark permet d'observer les échanges DHCP. Le filtre d'affichage suivant permet de repérer les paquets DHCPv4 :
dhcp
Selon la version de Wireshark, le filtre historique suivant peut également être rencontré :
bootp
On peut rechercher les messages Discover, Offer, Request et ACK pour déterminer à quelle étape la négociation échoue.
11. DHCP Relay : le relais DHCP
Les messages DHCPv4 de découverte sont généralement diffusés sur le réseau local. Un routeur ne transmet normalement pas ces diffusions vers tous les autres réseaux.
Pour fournir des adresses à plusieurs sous-réseaux, on utilise un relais DHCP (DHCP Relay Agent).
Exemple
- Réseau des clients : 192.168.10.0/24.
- Réseau du serveur : 192.168.1.0/24.
- Serveur DHCP : 192.168.1.10.
- Routeur entre les deux réseaux : configuré avec un relais DHCP.
Le relais reçoit les requêtes des clients et les transmet au serveur DHCP configuré. Le serveur utilise les informations du relais, notamment l'identifiant du sous-réseau, pour choisir l'étendue appropriée.
À retenir : chaque sous-réseau client doit disposer d'une configuration DHCP adaptée et d'un chemin réseau fonctionnel jusqu'au serveur ou au relais.
12. Sécurité DHCP
Le DHCP est un service essentiel au fonctionnement du réseau. Une mauvaise configuration ou un serveur non autorisé peut perturber les connexions.
Bonnes pratiques
- N'autoriser que les serveurs DHCP prévus.
- Sur les commutateurs compatibles, envisager DHCP Snooping pour limiter les réponses DHCP non autorisées.
- Séparer les réseaux invités, les postes utilisateurs, les serveurs et les équipements d'administration lorsque cela est pertinent.
- Restreindre l'accès d'administration aux serveurs DHCP.
- Sauvegarder régulièrement la configuration.
- Surveiller les journaux et les conflits d'adresses.
- Maintenir le serveur et ses logiciels à jour.
- Documenter les étendues, réservations, exclusions et options.
- Éviter les chevauchements entre les plages dynamiques et les adresses fixes.
- Ne pas exposer un serveur DHCP directement à Internet.
DHCP Snooping est une protection de niveau commutateur ; il ne remplace pas une conception réseau sécurisée et doit être configuré correctement.
13. Problèmes fréquents et solutions
| Symptôme | Causes possibles | Vérifications et solutions |
|---|---|---|
| Le client n'obtient pas d'adresse IP | Serveur arrêté, mauvais VLAN, câble ou Wi-Fi, plage épuisée. | Vérifier la connectivité, le service, les journaux et les baux disponibles. |
| Adresse en 169.254.x.x sous Windows | Aucune configuration DHCPv4 utilisable obtenue. | Vérifier le serveur, le relais, le VLAN et le renouvellement du bail. |
| Adresse IP en double | Plage DHCP chevauchant des adresses fixes ou serveur DHCP non autorisé. | Corriger le plan d'adressage et vérifier les autres serveurs DHCP. |
| Adresse correcte mais Internet inaccessible | Passerelle incorrecte, routage défaillant ou filtrage réseau. | Vérifier la passerelle, la route par défaut et les règles du pare-feu. |
| Les noms ne se résolvent pas | DNS incorrect ou inaccessible. | Vérifier les options DNS distribuées et tester avec nslookup. |
| Les clients d'un autre VLAN n'obtiennent pas d'adresse | Relais DHCP absent ou mal configuré. | Vérifier la configuration du relais et le routage vers le serveur. |
| L'étendue est vide | Mauvaise plage, exclusions trop larges ou nombreux baux actifs. | Examiner la plage, les exclusions, les réservations et les baux. |
| Une réservation ne fonctionne pas | Identifiant client incorrect ou adresse déjà utilisée. | Vérifier l'adresse MAC/ClientId, l'étendue et l'état du client. |
14. DHCP IPv6
DHCPv6 permet de fournir des paramètres réseau aux clients IPv6. Il utilise UDP 546 côté client et 547 côté serveur.
IPv6 dispose aussi de mécanismes de configuration automatique par annonces de routeur (Router Advertisements), notamment SLAAC. Selon la configuration du réseau, DHCPv6 peut être utilisé pour attribuer des adresses, fournir des paramètres complémentaires ou ne pas être nécessaire.
Attention : DHCPv4, DHCPv6 et SLAAC ne sont pas interchangeables. Il faut comprendre les mécanismes IPv6 activés sur le réseau avant de configurer les clients.
15. DHCP dans un environnement Active Directory
Dans un domaine Windows, DHCP et DNS travaillent souvent ensemble.
Exemple de fonctionnement :
- Le client démarre et demande une configuration DHCP.
- Le serveur DHCP attribue une adresse IP et les paramètres réseau.
- Le client reçoit l'adresse du DNS interne.
- Le client utilise DNS pour localiser les services du domaine.
- Les mises à jour DNS dynamiques peuvent être configurées pour maintenir les enregistrements des clients.
Pour un environnement Active Directory, les clients du domaine doivent normalement utiliser les DNS internes capables de résoudre les enregistrements du domaine et des contrôleurs de domaine.
L'autorisation du serveur DHCP dans Active Directory aide à contrôler les serveurs DHCP autorisés, mais elle ne remplace ni la sécurité du réseau ni la vérification des serveurs DHCP présents sur les segments non intégrés au domaine.
16. Sauvegarder et documenter la configuration
Une bonne administration DHCP implique de conserver une documentation à jour.
À documenter :
- Nom et adresse IP du serveur.
- Réseaux et étendues configurés.
- Plages dynamiques et exclusions.
- Passerelles et DNS distribués.
- Réservations et équipements associés.
- Durées de bail.
- Relais DHCP configurés sur les routeurs.
- Dépendances DNS et Active Directory.
- Procédure de sauvegarde et de restauration.
Sur Windows Server, les commandes et outils de sauvegarde doivent être choisis en fonction de la version de Windows Server et du mode de déploiement. Tester la restauration est aussi important que réaliser la sauvegarde.
17. Glossaire
| Terme | Définition |
|---|---|
| DHCP | Protocole de configuration automatique des hôtes. |
| Client DHCP | Équipement qui demande sa configuration réseau. |
| Serveur DHCP | Service qui distribue les paramètres réseau. |
| Bail | Attribution d'une adresse IP pour une durée déterminée. |
| Étendue | Ensemble de paramètres et de plage d'adresses gérés pour un sous-réseau. |
| Pool | Plage d'adresses disponibles pour les attributions dynamiques. |
| Réservation | Association d'un client identifié à une adresse déterminée. |
| Exclusion | Adresse ou plage qui ne doit pas être attribuée dynamiquement. |
| DORA | Discover, Offer, Request, Acknowledge : les quatre étapes courantes du DHCPv4. |
| DNS | Service de résolution des noms. |
| Passerelle | Équipement qui permet de joindre d'autres réseaux. |
| Relais DHCP | Fonction qui transmet les requêtes DHCP entre sous-réseaux. |
| DHCP Snooping | Mécanisme de commutateur permettant de filtrer certaines réponses DHCP non autorisées. |
| SLAAC | Mécanisme IPv6 d'autoconfiguration sans attribution d'adresse par DHCPv6. |
18. Ressources et documentation
- RFC 2131 — Dynamic Host Configuration Protocol
- RFC 2132 — DHCP Options and BOOTP Vendor Extensions
- RFC 8415 — DHCP for IPv6
- DHCP dans Windows Server — Microsoft Learn
- Documentation officielle de Kea DHCP
- Documentation de Wireshark