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.