« DHCP » : différence entre les versions
Page créée avec « = DHCP = Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau. » |
Aucun résumé des modifications |
||
| Ligne 2 : | Ligne 2 : | ||
Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau. | 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 == | |||
{| class="wikitable" | |||
! 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 == | |||
{| class="wikitable" | |||
! 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. | |||
Version du 16 février 2026 à 14:11
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.