DHCP
Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau.
🖥️ Infrastructure DHCP — Rocky Linux
⚙️ 0 — Prérequis
Vérifier l'utilisateur
whoami
Résultat attendu :
root
Le serveur doit avoir
- Une IP fixe configurée
- Une interface réseau active
- Accès réseau fonctionnel
Voir interfaces réseau :
ip a
🚀 1 — Création du Serveur DHCP
Installation du service DHCP
Rocky Linux utilise ISC DHCP Server.
dnf install dhcp-server -y
Vérifier installation :
rpm -qa | grep dhcp
---
Configuration de l’interface réseau
Identifier l’interface :
ip a
Configurer DHCP :
nano /etc/sysconfig/dhcpd
Modifier :
DHCPDARGS=ens33
(Remplacer par votre interface réseau)
---
Configuration principale DHCP
Créer le fichier :
nano /etc/dhcp/dhcpd.conf
Configuration minimale :
option domain-name "lab.local";
option domain-name-servers 8.8.8.8, 1.1.1.1;
default-lease-time 600;
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 broadcast-address 192.168.1.255;
}
---
Vérification configuration
dhcpd -t
---
Démarrage du service
systemctl enable dhcpd systemctl start dhcpd systemctl status dhcpd
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
---
Vérification fonctionnement
Logs :
journalctl -u dhcpd
Baux attribués :
cat /var/lib/dhcpd/dhcpd.leases
🔎 2 — Configuration DHCP détaillée
Explication des directives DHCP
| Directive | Description |
|---|---|
| option domain-name | Domaine local fourni aux clients |
| option domain-name-servers | Serveurs DNS fournis |
| default-lease-time | Durée IP par défaut |
| max-lease-time | Durée maximale du bail |
| authoritative | Définit ce serveur comme officiel |
| subnet | Réseau géré |
| range | Plage IP distribuée |
| option routers | Passerelle réseau |
| broadcast-address | Adresse broadcast |
---
Attribution IP fixe (réservation DHCP)
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.50;
}
---
Gestion de plusieurs réseaux
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.100 192.168.2.200;
option routers 192.168.2.1;
}
---
Boot réseau / PXE
next-server 192.168.1.10; filename "pxelinux.0";
🔁 3 — DHCP Relay sur Firewall
Principe
Le protocole DHCP utilise le broadcast. Les routeurs et firewalls bloquent ces requêtes entre réseaux.
Le DHCP Relay transmet les requêtes vers un serveur distant.
Architecture :
Client → Firewall → Serveur DHCP
---
Installation
dnf install dhcp-relay -y
---
Configuration
nano /etc/sysconfig/dhcrelay
Exemple :
DHCPSERVERS="192.168.1.10" INTERFACES="ens33 ens34"
- DHCPSERVERS → IP du serveur DHCP
- INTERFACES → interface client + interface serveur
---
Activation
systemctl enable dhcrelay systemctl start dhcrelay systemctl status dhcrelay
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
👑 4 — DHCP Maître / Esclave (Failover)
Objectif
Assurer la haute disponibilité du service DHCP.
Si le serveur principal tombe : → le serveur secondaire prend automatiquement le relais.
---
Fonctionnement
- Synchronisation des baux DHCP
- Partage des adresses IP
- Continuité de service
- Prévention des conflits IP
---
Modes disponibles
| Mode | Description |
|---|---|
| Load Balance | Répartition de charge entre serveurs |
| Hot Standby | Serveur secondaire en attente |
🔥 5 — Configuration DHCP Maître / Esclave
Architecture exemple
MASTER : 192.168.1.10 SLAVE : 192.168.1.11 Réseau : 192.168.1.0/24
Installer DHCP sur les deux serveurs :
dnf install dhcp-server -y
---
Configuration MASTER
nano /etc/dhcp/dhcpd.conf
failover peer "dhcp-failover" {
primary;
address 192.168.1.10;
port 647;
peer address 192.168.1.11;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
pool {
failover peer "dhcp-failover";
range 192.168.1.100 192.168.1.200;
}
}
---
Configuration SLAVE
nano /etc/dhcp/dhcpd.conf
failover peer "dhcp-failover" {
secondary;
address 192.168.1.11;
port 647;
peer address 192.168.1.10;
peer port 647;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;
pool {
failover peer "dhcp-failover";
range 192.168.1.100 192.168.1.200;
}
}
---
Ouverture port failover
firewall-cmd --add-port=647/tcp --permanent firewall-cmd --reload
---
Démarrage du service
systemctl enable dhcpd systemctl start dhcpd
---
Vérification synchronisation
journalctl -u dhcpd
Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire.