Aucun résumé des modifications
 
(18 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
= DHCP =
= <span style="color:#2c3e50;">DHCP</span> =


Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau.
{| style="width:100%; background:#f0f4f8; border:1px solid #c7d3e0; padding:15px; border-radius:10px; overflow:hidden;"
|
<span style="font-size:120%; color:#2c3e50;">
Le <b>DHCP (Dynamic Host Configuration Protocol)</b> permet d’attribuer automatiquement des adresses IP aux machines d’un réseau.
</span>
|}


Vérifier l'utilisateur :
= <span style="color:#2c3e50;">Infrastructure DHCP — Rocky Linux</span> =


<pre>
{| style="width:100%; background:#f5f7fa; border:1px solid #d6dbe1; padding:15px; border-radius:10px; overflow:hidden;"
whoami
|
</pre>
<span style="font-size:115%; color:#34495e;">
<b>Documentation complète de mise en place d’une infrastructure DHCP sous Rocky Linux</b>
</span>
|}


Résultat attendu :
__TOC__
<pre>
root
</pre>


Le serveur doit avoir :
= <span style="color:#196f3d;">1 — Création du Serveur DHCP</span> =
* une IP fixe
* une interface réseau active
* accès réseau fonctionnel


Voir interfaces réseau :
{| style="width:100%; background:#f3f9f1; border:1px solid #cfe5c9; padding:12px; border-radius:10px; overflow:hidden;"
|
<b style="color:#196f3d;">Installation et configuration du service DHCP</b>
|}


<pre>
== <span style="color:#239b56;">Installation du service</span> ==
ip a
</pre>
 
================================================================
 
= 1 — Serveur DHCP : Création =
 
== Installation du serveur DHCP ==
 
Rocky Linux utilise ISC DHCP Server.


<pre>
<pre>
Ligne 37 : Ligne 32 :
</pre>
</pre>


Vérifier installation :
Vérifier l’installation :


<pre>
<pre>
Ligne 43 : Ligne 38 :
</pre>
</pre>


---
== <span style="color:#239b56;">Configuration principale</span> ==
 
== Configuration de l’interface DHCP ==
 
Identifier l’interface réseau :
 
<pre>
ip a
</pre>
 
Configurer l’interface utilisée par DHCP :
 
<pre>
nano /etc/sysconfig/dhcpd
</pre>
 
Modifier :


<pre>
<pre>
DHCPDARGS=ens33
vi /etc/dhcp/dhcpd.conf
</pre>
 
(Remplacer ens33 par votre interface réseau)
 
---
 
== Création du fichier de configuration principal ==
 
<pre>
nano /etc/dhcp/dhcpd.conf
</pre>
</pre>


Ligne 78 : Ligne 47 :


<pre>
<pre>
option domain-name "lab.local";
subnet 192.168.30.0 netmask 255.255.255.0 {
option domain-name-servers 8.8.8.8, 1.1.1.1;
    authoritative;


default-lease-time 600;
    option routers 192.168.30.254;
max-lease-time 7200;
    option domain-name-servers 192.168.40.253;
 
    range 192.168.30.10 192.168.30.50;
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;
}
}
</pre>
</pre>


---
== <span style="color:#239b56;">Vérification de la configuration</span> ==
 
== 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 :


<pre>
<pre>
Ligne 132 : Ligne 62 :
</pre>
</pre>


---
== <span style="color:#239b56;">Démarrage du service</span> ==
 
== Démarrage du service ==


<pre>
<pre>
Ligne 142 : Ligne 70 :
</pre>
</pre>


---
== <span style="color:#239b56;">Ouverture de iptables</span> ==
 
== Ouverture firewall ==


<pre>
<pre>
firewall-cmd --add-service=dhcp --permanent
vi /etc/sysconfig/iptables
firewall-cmd --reload
-I INPUT 2 -p udp --dport 67 -j ACCEPT
</pre>
</pre>


---
== <span style="color:#239b56;">Enregistrement des changements</span> ==
 
== Vérification fonctionnement ==
 
Logs :


<pre>
<pre>
journalctl -u dhcpd
systemctl reload iptables
</pre>
</pre>


Baux DHCP :
----


<pre>
= <span style="color:#b9770e;">2 — Configuration DHCP détaillée</span> =
cat /var/lib/dhcpd/dhcpd.leases
</pre>


================================================================
{| style="width:100%; background:#fff6e6; border:1px solid #f1d6a8; padding:12px; border-radius:10px; overflow:hidden;"
|
<b style="color:#b9770e;">Configuration avancée du serveur DHCP</b>
|}


= 2 — Configuration DHCP détaillée =
== <span style="color:#ca6f1e;">Explication des directives</span> ==


== Attribution IP fixe par MAC ==
{| class="wikitable" style="width:50%; background:#ffffff; border:1px solid #fad7a0; border-radius:10px; overflow:hidden;"
! Directive !! Description
|-
| subnet || Réseau géré
|-
| authoritative || Serveur DHCP officiel
|-
| option routers || Passerelle réseau
|-
| option domain-name-servers || Serveurs DNS fournis
|-
| range || Plage IP distribuée
|}


Permet de donner toujours la même IP à une machine.
== <span style="color:#ca6f1e;">Attribution d’une IP fixe</span> ==


<pre>
<pre>
host pc1 {
host dhcp1 {
  hardware ethernet 00:11:22:33:44:55;
  hardware ethernet 00:00:00:00:00:00;
  fixed-address 192.168.1.50;
  fixed-address 192.168.40.253;
}
}
</pre>
</pre>


---
== <span style="color:#ca6f1e;">Plusieurs réseaux</span> ==


== Gestion de plusieurs réseaux ==
Répétez cette procédure pour tous les réseaux nécessaires.


<pre>
----
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;
}
</pre>


---
= <span style="color:#7d3c98;">3 — DHCP Relay sur Firewall</span> =


== Options PXE (boot réseau) ==
{| style="width:100%; background:#f5eef8; border:1px solid #d7c6e6; padding:12px; border-radius:10px; overflow:hidden;"
|
<b style="color:#7d3c98;">Transmission des requêtes DHCP entre réseaux</b>
|}


Utilisé pour déploiement OS :
== <span style="color:#884ea0;">Principe</span> ==


<pre>
{| style="width:100%; background:#fafafa; border:1px solid #ddd; padding:12px; border-radius:10px; overflow:hidden;"
next-server 192.168.1.10;
|
filename "pxelinux.0";
Le DHCP fonctionne en broadcast.
</pre>
Les routeurs bloquent ces requêtes.
 
Le DHCP Relay transmet les requêtes vers un serveur distant.
================================================================
|}
 
= 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 :
Architecture :
Ligne 221 : Ligne 145 :
</pre>
</pre>


---
== <span style="color:#884ea0;">Installation</span> ==
 
== Installation du DHCP Relay ==
 
Sur le firewall Rocky Linux :


<pre>
<pre>
Ligne 231 : Ligne 151 :
</pre>
</pre>


---
== <span style="color:#884ea0;">Configuration</span> ==
 
== Configuration du relay ==


<pre>
<pre>
nano /etc/sysconfig/dhcrelay
cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
vi /etc/systemd/system/dhcrelay.service
ExecStart=/usr/sbin/dhcrelay -d --no-pid -i pri -i lan -i dmz 192.168.40.253 192.168.40.251
systemctl daemon-reload
vi /etc/sysconfig/dhcrelay
</pre>
</pre>


Exemple :
Ajouter :


<pre>
<pre>
DHCPSERVERS="192.168.1.10"
INTERFACES="dmz pri lan"
INTERFACES="ens33 ens34"
DHCPSERVERS="192.168.40.253"
</pre>
</pre>


Explication :
== <span style="color:#884ea0;">Activation</span> ==
 
* DHCPSERVERS → IP du serveur DHCP
* INTERFACES → interface côté client + interface côté serveur
 
---
 
== Activation du relay ==


<pre>
<pre>
systemctl enable dhcrelay
systemctl enable dhcrelay
systemctl start dhcrelay
systemctl start dhcrelay
systemctl status dhcrelay
</pre>
</pre>


---
----


== Ouverture firewall ==
= <span style="color:#922b21;">4 — DHCP Maître / Esclave (Failover)</span> =


<pre>
{| style="width:100%; background:#fdeeee; border:1px solid #efc2c2; padding:12px; border-radius:10px; overflow:hidden;"
firewall-cmd --add-service=dhcp --permanent
|
firewall-cmd --reload
<b style="color:#922b21;">Haute disponibilité du service DHCP</b>
</pre>
|}
 
================================================================
 
= 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 :
== <span style="color:#a93226;">Objectif</span> ==


* synchronisation des baux DHCP
* Continuité de service
* partage des adresses IP
* Synchronisation des baux
* continuité de service
* Prévention des conflits IP
* prévention des conflits IP


---
== <span style="color:#a93226;">Modes</span> ==


== Modes possibles ==
{| class="wikitable" style="width:35%; border:1px solid #f5b7b1; border-radius:10px; overflow:hidden;"
 
{| class="wikitable"
! Mode !! Description
! Mode !! Description
|-
|-
| Load Balance || Répartition de charge entre serveurs
| Load Balance || Partage de charge
|-
|-
| Hot Standby || Serveur secondaire en attente
| Hot Standby || Serveur secondaire de secours
|}
|}


================================================================
----


= 5 — Configuration DHCP Maître / Esclave =
= <span style="color:#117864;">5 — Configuration DHCP Maître / Esclave</span> =


== Architecture exemple ==
{| style="width:100%; background:#eef7f6; border:1px solid #bfe1dc; padding:12px; border-radius:10px; overflow:hidden;"
|
<b style="color:#117864;">Configuration complète du failover DHCP</b>
|}
 
== <span style="color:#148f77;">Architecture</span> ==


<pre>
<pre>
MASTER : 192.168.1.10
MASTER : 192.168.40.253
SLAVE  : 192.168.1.11
SLAVE  : 192.168.40.251
Réseau : 192.168.1.0/24
</pre>
</pre>


Installer DHCP sur les deux serveurs :
Installation sur les deux serveurs :


<pre>
<pre>
Ligne 325 : Ligne 222 :
</pre>
</pre>


---
== <span style="color:#148f77;">Configuration MASTER</span> ==
 
== Configuration MASTER ==


<pre>
<pre>
nano /etc/dhcp/dhcpd.conf
failover peer "dhcp" {
</pre>
  primary;
  address 192.168.40.253;
  port 520;
  peer address 192.168.40.251;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}


<pre>
subnet 192.168.30.0 netmask 255.255.255.0 {
failover peer "dhcp-failover" {
    authoritative;
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.30.254;
option routers 192.168.1.1;
    option domain-name-servers 192.168.40.253;
option domain-name-servers 8.8.8.8;


pool {
    pool {
  failover peer "dhcp-failover";
        failover peer "dhcp";
  range 192.168.1.100 192.168.1.200;
        option routers 192.168.30.254;
}
        range 192.168.30.10 192.168.30.50;
    }
}
}
</pre>
</pre>


---
== <span style="color:#148f77;">Configuration SLAVE</span> ==
 
== Configuration SLAVE ==
 
<pre>
nano /etc/dhcp/dhcpd.conf
</pre>


<pre>
<pre>
failover peer "dhcp-failover" {
failover peer "dhcp" {
secondary;
  secondary;
address 192.168.1.11;
  address 192.168.40.251;
port 647;
  port 520;
peer address 192.168.1.10;
  peer address 192.168.40.253;
peer port 647;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
}
}
subnet 192.168.30.0 netmask 255.255.255.0 {
    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;


subnet 192.168.1.0 netmask 255.255.255.0 {
    pool {
option routers 192.168.1.1;
        failover peer "dhcp";
option domain-name-servers 8.8.8.8;
        option routers 192.168.30.254;
 
        range 192.168.30.10 192.168.30.50;
pool {
    }
  failover peer "dhcp-failover";
  range 192.168.1.100 192.168.1.200;
}
}
}
</pre>
</pre>


---
== <span style="color:#148f77;">Ouverture du port failover</span> ==
 
== Ouverture ports failover (sur les deux serveurs) ==


<pre>
<pre>
firewall-cmd --add-port=647/tcp --permanent
vi /etc/sysconfig/iptables
firewall-cmd --reload
-I INPUT 2 -p tcp --dport 520 -j ACCEPT
systemctl reload iptables
</pre>
</pre>


---
== <span style="color:#148f77;">Redémarrage du service DHCP</span> ==
 
== Démarrage du service sur les deux serveurs ==


<pre>
<pre>
systemctl enable dhcpd
systemctl restart dhcpd
systemctl start dhcpd
</pre>
</pre>


---
----


== Vérification synchronisation ==
{| style="width:100%; background:#e8f5e9; border:1px solid #c8e6c9; padding:15px; border-radius:10px; overflow:hidden;"
 
|
<pre>
<span style="font-size:120%; color:#1e8449;">
journalctl -u dhcpd
<b>Infrastructure DHCP opérationnelle</b>
</pre>
</span>
 
|}
Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire.

Dernière version du 21 février 2026 à 15:27

DHCP

Le DHCP (Dynamic Host Configuration Protocol) permet d’attribuer automatiquement des adresses IP aux machines d’un réseau.

Infrastructure DHCP — Rocky Linux

Documentation complète de mise en place d’une infrastructure DHCP sous Rocky Linux

1 — Création du Serveur DHCP

Installation et configuration du service DHCP

Installation du service

dnf install dhcp-server -y

Vérifier l’installation :

rpm -qa | grep dhcp

Configuration principale

vi /etc/dhcp/dhcpd.conf

Configuration minimale :

subnet 192.168.30.0 netmask 255.255.255.0 {
    authoritative;

    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;
    range 192.168.30.10 192.168.30.50;
}

Vérification de la configuration

dhcpd -t

Démarrage du service

systemctl enable dhcpd
systemctl start dhcpd
systemctl status dhcpd

Ouverture de iptables

vi /etc/sysconfig/iptables
-I INPUT 2 -p udp --dport 67 -j ACCEPT

Enregistrement des changements

systemctl reload iptables

2 — Configuration DHCP détaillée

Configuration avancée du serveur DHCP

Explication des directives

Directive Description
subnet Réseau géré
authoritative Serveur DHCP officiel
option routers Passerelle réseau
option domain-name-servers Serveurs DNS fournis
range Plage IP distribuée

Attribution d’une IP fixe

host dhcp1 {
 hardware ethernet 00:00:00:00:00:00;
 fixed-address 192.168.40.253;
}

Plusieurs réseaux

Répétez cette procédure pour tous les réseaux nécessaires.


3 — DHCP Relay sur Firewall

Transmission des requêtes DHCP entre réseaux

Principe

Le DHCP fonctionne en broadcast. Les routeurs bloquent ces requêtes. Le DHCP Relay transmet les requêtes vers un serveur distant.

Architecture :

Client → Firewall → Serveur DHCP

Installation

dnf install dhcp-relay -y

Configuration

cp /lib/systemd/system/dhcrelay.service /etc/systemd/system/
vi /etc/systemd/system/dhcrelay.service
ExecStart=/usr/sbin/dhcrelay -d --no-pid -i pri -i lan -i dmz 192.168.40.253 192.168.40.251
systemctl daemon-reload
vi /etc/sysconfig/dhcrelay

Ajouter :

INTERFACES="dmz pri lan"
DHCPSERVERS="192.168.40.253"

Activation

systemctl enable dhcrelay
systemctl start dhcrelay

4 — DHCP Maître / Esclave (Failover)

Haute disponibilité du service DHCP

Objectif

  • Continuité de service
  • Synchronisation des baux
  • Prévention des conflits IP

Modes

Mode Description
Load Balance Partage de charge
Hot Standby Serveur secondaire de secours

5 — Configuration DHCP Maître / Esclave

Configuration complète du failover DHCP

Architecture

MASTER : 192.168.40.253
SLAVE  : 192.168.40.251

Installation sur les deux serveurs :

dnf install dhcp-server -y

Configuration MASTER

failover peer "dhcp" {
  primary;
  address 192.168.40.253;
  port 520;
  peer address 192.168.40.251;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}

subnet 192.168.30.0 netmask 255.255.255.0 {
    authoritative;

    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;

    pool {
        failover peer "dhcp";
        option routers 192.168.30.254;
        range 192.168.30.10 192.168.30.50;
    }
}

Configuration SLAVE

failover peer "dhcp" {
  secondary;
  address 192.168.40.251;
  port 520;
  peer address 192.168.40.253;
  peer port 520;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
}
subnet 192.168.30.0 netmask 255.255.255.0 {
    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;

    pool {
        failover peer "dhcp";
        option routers 192.168.30.254;
        range 192.168.30.10 192.168.30.50;
    }
}

Ouverture du port failover

vi /etc/sysconfig/iptables
-I INPUT 2 -p tcp --dport 520 -j ACCEPT
systemctl reload iptables

Redémarrage du service DHCP

systemctl restart dhcpd

Infrastructure DHCP opérationnelle