Administration Système et Infrastructure

Installation et configuration d'un serveur DHCP

Mettre en service un serveur DHCP demande plus que l'installation d'un rôle : plan d'étendues, options, réservations, relais par VLAN et haute disponibilité. Guide pratique sous Windows Server et Linux.

Serveur DHCP central distribuant des étendues à plusieurs VLAN via des agents de relais

Le protocole DHCP est expliqué dans DHCP : fonctionnement et attribution des adresses IP. Cet article passe à la pratique : concevoir les étendues, installer le service sous Windows Server et sous Linux avec ISC Kea, configurer les relais et assurer la continuité de service.

Objectif : déployer un service DHCP fiable, servant plusieurs VLAN depuis un point central, avec réservations et redondance.

Préparer le plan d'étendues

Avant toute installation, établissez un tableau par sous-réseau :

VLAN Sous-réseau Passerelle Plage DHCP Exclusions (statiques) Durée du bail
10 Utilisateurs 10.10.10.0/24 10.10.10.1 .50 – .240 .1 – .49 8 jours
30 Téléphonie 10.10.30.0/24 10.10.30.1 .20 – .250 .1 – .19 8 jours
40 Invités 10.10.40.0/23 10.10.40.1 10.10.40.20 – 10.10.41.250 .1 – .19 4 heures

Points d'attention :

  • les adresses statiques (passerelle, imprimantes non réservées, équipements) sont hors plage ;
  • la durée du bail est adaptée à la rotation des appareils ;
  • le serveur DHCP lui-même a une adresse statique.

Les adresses, noms et domaines de cet article sont des exemples de laboratoire. Adaptez-les à votre plan d'adressage et testez la configuration sur un segment isolé avant la mise en production : un second serveur DHCP actif par erreur perturbe immédiatement tout un VLAN.

Sous Windows Server

Installer et autoriser le rôle

Install-WindowsFeature DHCP -IncludeManagementTools

# Créer les groupes de sécurité locaux DHCP
netsh dhcp add securitygroups
Restart-Service DHCPServer

# Dans un domaine Active Directory, autoriser le serveur
Add-DhcpServerInDC -DnsName srv-dhcp01.exemple.local -IPAddress 10.10.20.12

Dans un environnement Active Directory, un serveur DHCP Windows non autorisé ne distribue pas d'adresses : c'est une protection contre les serveurs installés par erreur. Le Gestionnaire de serveur signale aussi la fin de configuration post-installation ; une fois les étapes faites, on peut marquer cette tâche comme terminée.

Créer une étendue

Add-DhcpServerv4Scope -Name "VLAN10-Utilisateurs" -StartRange 10.10.10.50 -EndRange 10.10.10.240 `
  -SubnetMask 255.255.255.0 -LeaseDuration 8.00:00:00 -State Active

Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -Router 10.10.10.1
Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -DnsServer 10.10.20.10, 10.10.20.11 -DnsDomain exemple.local

Les options définies au niveau du serveur s'appliquent à toutes les étendues ; celles définies au niveau de l'étendue les remplacent. Mettez au niveau serveur ce qui est commun (DNS, domaine), au niveau étendue ce qui est propre au sous-réseau (passerelle).

Réservations

Add-DhcpServerv4Reservation -ScopeId 10.10.10.0 -IPAddress 10.10.10.45 `
  -ClientId "3C-52-82-1A-9F-07" -Description "Imprimante étage 2"

Une réservation placée hors de la plage de distribution mais dans le sous-réseau de l'étendue fonctionne : c'est une pratique courante pour séparer visuellement les adresses réservées.

Vérifier

Get-DhcpServerv4Scope
Get-DhcpServerv4ScopeStatistics          # taux d'occupation par étendue
Get-DhcpServerv4Lease -ScopeId 10.10.10.0

Basculement DHCP (failover)

Windows Server prend en charge le basculement DHCP entre deux serveurs, en mode :

  • Équilibrage de charge : les deux serveurs répondent, selon une répartition (50/50 par défaut) ;
  • Serveur de secours (hot standby) : un serveur principal, un serveur de secours qui prend le relais.
Add-DhcpServerv4Failover -Name "Basculement-Site" -PartnerServer srv-dhcp02.exemple.local `
  -ScopeId 10.10.10.0, 10.10.30.0 -LoadBalancePercent 50 -SharedSecret "<secret-fort-a-definir>" -AutoStateTransition $true

Le paramètre MCLT (Maximum Client Lead Time) détermine notamment le délai avant qu'un serveur puisse reprendre l'intégralité d'une étendue lorsque son partenaire est déclaré en panne.

Sous Linux avec ISC Kea

ISC DHCP (dhcpd) a atteint sa fin de vie (fin de maintenance annoncée par l'ISC fin 2022). Son successeur est Kea, configuré en JSON et doté d'une API de gestion.

Installation

# Debian / Ubuntu (paquets de la distribution)
sudo apt install kea-dhcp4-server
# RHEL et dérivés : paquets fournis par EPEL ou par les dépôts ISC

Configuration minimale

{
  "Dhcp4": {
    "interfaces-config": { "interfaces": [ "ens18" ] },
    "lease-database": { "type": "memfile", "persist": true, "name": "/var/lib/kea/kea-leases4.csv" },
    "valid-lifetime": 691200,
    "renew-timer": 345600,
    "rebind-timer": 604800,
    "option-data": [
      { "name": "domain-name-servers", "data": "10.10.20.10, 10.10.20.11" },
      { "name": "domain-name", "data": "exemple.local" }
    ],
    "subnet4": [
      {
        "id": 10,
        "subnet": "10.10.10.0/24",
        "pools": [ { "pool": "10.10.10.50 - 10.10.10.240" } ],
        "option-data": [ { "name": "routers", "data": "10.10.10.1" } ],
        "reservations": [
          { "hw-address": "3c:52:82:1a:9f:07", "ip-address": "10.10.10.45", "hostname": "imprimante-e2" }
        ]
      }
    ],
    "loggers": [
      { "name": "kea-dhcp4", "output_options": [ { "output": "syslog" } ], "severity": "INFO" }
    ]
  }
}

Le fichier se trouve généralement dans /etc/kea/kea-dhcp4.conf. Les durées sont exprimées en secondes (691 200 s = 8 jours) ; T1 et T2 suivent ici les ratios usuels de 50 % et 87,5 %.

sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf     # vérifier la syntaxe
sudo systemctl restart kea-dhcp4-server
journalctl -u kea-dhcp4-server -f

Kea propose aussi une haute disponibilité par paire de serveurs via sa bibliothèque High Availability (modes load-balancing et hot-standby).

Configurer les relais

Le serveur central n'est pas dans le même domaine de diffusion que les clients : chaque passerelle de VLAN doit relayer les requêtes.

! Cisco IOS / IOS XE — exemple de laboratoire
interface Vlan10
 ip address 10.10.10.1 255.255.255.0
 ip helper-address 10.10.20.12
 ip helper-address 10.10.20.13

Indiquer les deux serveurs en cas de basculement garantit que les requêtes atteignent le partenaire disponible. Sur un pare-feu servant de passerelle, activez la fonction « DHCP relay » de l'interface correspondante. Le serveur choisit l'étendue d'après l'adresse du relais (champ giaddr) : chaque VLAN relayé doit donc avoir une étendue correspondante.

Vérification de bout en bout

  1. Sur un poste du VLAN, ipconfig /release puis ipconfig /renew (ou nmcli device reapply).
  2. Vérifiez l'adresse, la passerelle, les DNS et le serveur DHCP indiqués par ipconfig /all.
  3. Contrôlez l'apparition du bail sur le serveur.
  4. Testez la bascule en arrêtant le serveur principal, sur un environnement de test.

Superviser le service

  • Taux d'occupation des étendues : alertez au-delà de 80 à 85 %.
  • Journaux : requêtes NAK nombreuses, conflits, refus d'autorisation.
  • État du basculement : un partenaire en état « communication interrompue » doit déclencher une alerte.

Erreurs courantes

  • Étendue créée mais relais oublié sur la passerelle du VLAN.
  • Options de passerelle définies au niveau serveur, donc fausses pour la plupart des étendues.
  • Plages DHCP qui chevauchent des adresses statiques.
  • Serveur DHCP Windows non autorisé dans Active Directory.
  • Poursuivre avec ISC DHCP sans plan de migration malgré sa fin de maintenance.

Implications de sécurité

Activez le DHCP Snooping sur les commutateurs d'accès et déclarez comme ports de confiance uniquement ceux menant aux serveurs DHCP ou aux relais. Restreignez l'administration du serveur aux groupes autorisés, journalisez les attributions (utile pour relier une adresse IP à un appareil lors d'un incident) et protégez le secret partagé du basculement. Voir Contrôle d'accès et principe du moindre privilège.

Conclusion

Un service DHCP robuste repose sur un plan d'étendues documenté, des options placées au bon niveau, des relais sur chaque VLAN et une paire de serveurs en basculement. Sous Linux, privilégiez Kea pour tout nouveau déploiement. Pour la résolution des noms associée, voir DNS sous Windows Server et intégration à Active Directory.

Références