DHCP
Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau.
Le serveur doit avoir :
- une IP fixe
- une interface réseau active
- accès réseau fonctionnel
Voir interfaces réseau :
ip a
arduino Copier le code
====================================================
1 — Serveur DHCP : Création
Installation du serveur DHCP
Rocky Linux utilise ISC DHCP Server.
dnf install dhcp-server -y
yaml Copier le code
Vérifier installation :
rpm -qa | grep dhcp
yaml Copier le code
---
Configuration de l’interface DHCP
Identifier l’interface réseau :
ip a
kotlin Copier le code
Configurer l’interface utilisée par DHCP :
nano /etc/sysconfig/dhcpd
yaml Copier le code
Modifier :
DHCPDARGS=ens33
yaml Copier le code
(Remplacer ens33 par votre interface réseau)
---
Création du fichier de configuration principal
nano /etc/dhcp/dhcpd.conf
yaml Copier le code
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; }
yaml Copier le code
---
Explication directives
| Directive | Rôle |
|---|---|
| option domain-name | Domaine local fourni aux clients |
| option domain-name-servers | DNS fournis |
| default-lease-time | Durée IP par défaut |
| max-lease-time | Durée maximale du bail |
| authoritative | Serveur DHCP officiel du réseau |
| subnet | Réseau géré |
| range | Plage IP distribuée |
| option routers | Passerelle |
| broadcast-address | Adresse broadcast |
---
Vérification de configuration
Tester avant démarrage :
dhcpd -t
yaml Copier le code
---
Démarrage du service
systemctl enable dhcpd systemctl start dhcpd systemctl status dhcpd
yaml Copier le code
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
yaml Copier le code
---
Vérification fonctionnement
Logs :
journalctl -u dhcpd
yaml Copier le code
Baux DHCP :
cat /var/lib/dhcpd/dhcpd.leases
diff Copier le code
====================================================
2 — Configuration DHCP détaillée
Attribution IP fixe par MAC
Permet de donner toujours la même IP à une machine.
host pc1 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.1.50; }
yaml Copier le code
---
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; }
yaml Copier le code
---
Options PXE (boot réseau)
Utilisé pour déploiement OS :
next-server 192.168.1.10; filename "pxelinux.0";
bash Copier le code
====================================================
3 — DHCP Relay sur Firewall
Principe
Le DHCP fonctionne en broadcast. Les routeurs/firewalls bloquent les broadcasts entre réseaux.
Le DHCP Relay transmet les requêtes clients vers un serveur DHCP distant.
Architecture :
Client → Firewall → Serveur DHCP
yaml Copier le code
---
Installation du DHCP Relay
Sur le firewall Rocky Linux :
dnf install dhcp-relay -y
yaml Copier le code
---
Configuration du relay
nano /etc/sysconfig/dhcrelay
yaml Copier le code
Exemple :
DHCPSERVERS="192.168.1.10" INTERFACES="ens33 ens34"
yaml Copier le code
Explication :
- DHCPSERVERS → IP du serveur DHCP
- INTERFACES → interface côté client + interface côté serveur
---
Activation du relay
systemctl enable dhcrelay systemctl start dhcrelay systemctl status dhcrelay
yaml Copier le code
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
yaml Copier le code
====================================================
4 — DHCP Maître / Esclave (Failover) : Explication
Objectif
Assurer la haute disponibilité du service DHCP.
Si le serveur principal tombe, le secondaire prend automatiquement le relais.
---
Fonctionnement
Deux serveurs DHCP :
- MASTER → serveur principal
- SLAVE → serveur secondaire
Fonctionnalités :
- synchronisation des baux DHCP
- partage des adresses IP
- continuité de service
- prévention des conflits IP
---
Modes possibles
| 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
yaml Copier le code
Installer DHCP sur les deux serveurs :
dnf install dhcp-server -y
yaml Copier le code
---
Configuration MASTER
nano /etc/dhcp/dhcpd.conf
Copier le code 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; } }
yaml Copier le code
---
Configuration SLAVE
nano /etc/dhcp/dhcpd.conf
Copier le code 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; } }
yaml Copier le code
---
Ouverture ports failover (sur les deux serveurs)
firewall-cmd --add-port=647/tcp --permanent firewall-cmd --reload
yaml Copier le code
---
Démarrage du service sur les deux serveurs
systemctl enable dhcpd systemctl start dhcpd
yaml Copier le code
---
Vérification synchronisation
journalctl -u dhcpd
nginx Copier le code
Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire.