Aucun résumé des modifications
 
(14 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>
|}
 
= <span style="color:#2c3e50;">Infrastructure DHCP — Rocky Linux</span> =


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


__TOC__
__TOC__


= <span style="color:#196f3d;">1 — Création du Serveur DHCP</span> =


= ⚙️ 0 — Prérequis =
{| 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>
|}


== Vérifier l'utilisateur ==
== <span style="color:#239b56;">Installation du service</span> ==
<pre>
whoami
</pre>


Résultat attendu :
<pre>
<pre>
root
dnf install dhcp-server -y
</pre>
 
== Le serveur doit avoir ==
* Une IP fixe configurée
* Une interface réseau active
* Accès réseau fonctionnel
 
Voir interfaces réseau :
<pre>
ip a
</pre>
</pre>


= 🚀 1 — Création du Serveur DHCP =
Vérifier l’installation :
 
== Installation du service DHCP ==
Rocky Linux utilise ISC DHCP Server.
 
<pre>
dnf install dhcp-server -y
</pre>


Vérifier installation :
<pre>
<pre>
rpm -qa | grep dhcp
rpm -qa | grep dhcp
</pre>
</pre>


 
== <span style="color:#239b56;">Configuration principale</span> ==
 
== Configuration de l’interface réseau ==
 
Identifier l’interface :
<pre>
ip a
</pre>
 
Configurer DHCP :
 
<pre>
nano /etc/sysconfig/dhcpd
</pre>
 
Modifier :
 
<pre>
DHCPDARGS=ens33
</pre>
 
(Remplacer par votre interface réseau)
 
 
 
== Configuration principale DHCP ==
 
Créer le fichier :


<pre>
<pre>
nano /etc/dhcp/dhcpd.conf
vi /etc/dhcp/dhcpd.conf
</pre>
</pre>


Ligne 80 : 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;
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 routers 192.168.30.254;
 
    option domain-name-servers 192.168.40.253;
option broadcast-address 192.168.1.255;
    range 192.168.30.10 192.168.30.50;
}
}
</pre>
</pre>


== <span style="color:#239b56;">Vérification de la configuration</span> ==


== Vérification configuration ==
<pre>
<pre>
dhcpd -t
dhcpd -t
</pre>
</pre>


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


== Démarrage du service ==
<pre>
<pre>
systemctl enable dhcpd
systemctl enable dhcpd
Ligne 114 : 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 attribués :
----
<pre>
 
cat /var/lib/dhcpd/dhcpd.leases
= <span style="color:#b9770e;">2 — Configuration DHCP détaillée</span> =
</pre>


= 🔎 2 — Configuration DHCP détaillée =
{| 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>
|}


== Explication des directives DHCP ==
== <span style="color:#ca6f1e;">Explication des directives</span> ==


{| class="wikitable"
{| class="wikitable" style="width:50%; background:#ffffff; border:1px solid #fad7a0; border-radius:10px; overflow:hidden;"
! Directive !! Description
! Directive !! Description
|-
|-
| option domain-name || Domaine local fourni aux clients
| subnet || Réseau géré
|-
|-
| option domain-name-servers || Serveurs DNS fournis
| authoritative || Serveur DHCP officiel
|-
|-
| default-lease-time || Durée IP par défaut
| option routers || Passerelle réseau
|-
|-
| max-lease-time || Durée maximale du bail
| option domain-name-servers || Serveurs DNS fournis
|-
| authoritative || Définit ce serveur comme officiel
|-
| subnet || Réseau géré
|-
|-
| range || Plage IP distribuée
| range || Plage IP distribuée
|-
| option routers || Passerelle réseau
|-
| broadcast-address || Adresse broadcast
|}
|}


 
== <span style="color:#ca6f1e;">Attribution d’une IP fixe</span> ==
 
== Attribution IP fixe (réservation DHCP) ==
 
<pre>
host pc1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.50;
}
</pre>
 
 
 
== Gestion de plusieurs réseaux ==


<pre>
<pre>
subnet 192.168.2.0 netmask 255.255.255.0 {
host dhcp1 {
  range 192.168.2.100 192.168.2.200;
  hardware ethernet 00:00:00:00:00:00;
  option routers 192.168.2.1;
  fixed-address 192.168.40.253;
}
}
</pre>
</pre>


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


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


== Boot réseau / PXE ==
----


<pre>
= <span style="color:#7d3c98;">3 — DHCP Relay sur Firewall</span> =
next-server 192.168.1.10;
filename "pxelinux.0";
</pre>


{| 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>
|}


= 🔁 3 — DHCP Relay sur Firewall =
== <span style="color:#884ea0;">Principe</span> ==
 
== Principe ==
Le protocole DHCP utilise le broadcast.
Les routeurs et firewalls bloquent ces requêtes entre réseaux.


{| style="width:100%; background:#fafafa; border:1px solid #ddd; padding:12px; border-radius:10px; overflow:hidden;"
|
Le DHCP fonctionne en broadcast. 
Les routeurs bloquent ces requêtes. 
Le DHCP Relay transmet les requêtes vers un serveur distant.
Le DHCP Relay transmet les requêtes vers un serveur distant.
|}


Architecture :
Architecture :
Ligne 208 : Ligne 145 :
</pre>
</pre>


== <span style="color:#884ea0;">Installation</span> ==


== Installation ==
<pre>
<pre>
dnf install dhcp-relay -y
dnf install dhcp-relay -y
</pre>
</pre>


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


== Configuration ==
<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>


* DHCPSERVERS → IP du serveur DHCP
== <span style="color:#884ea0;">Activation</span> ==
* INTERFACES → interface client + interface serveur


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


----


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


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


= 👑 4 — DHCP Maître / Esclave (Failover) =
== <span style="color:#a93226;">Objectif</span> ==


== 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
* Continuité de service
* Synchronisation des baux
* Prévention des conflits IP
* Prévention des conflits IP


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


 
{| class="wikitable" style="width:35%; border:1px solid #f5b7b1; border-radius:10px; overflow:hidden;"
== Modes disponibles ==
 
{| 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
|}
|}


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


= 🔥 5 — Configuration DHCP Maître / Esclave =
{| 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>
|}


== Architecture exemple ==
== <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 295 : 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>
<pre>
nano /etc/dhcp/dhcpd.conf
failover peer "dhcp" {
</pre>
  secondary;
 
  address 192.168.40.251;
<pre>
  port 520;
failover peer "dhcp-failover" {
  peer address 192.168.40.253;
secondary;
  peer port 520;
address 192.168.1.11;
  max-response-delay 60;
port 647;
  max-unacked-updates 10;
peer address 192.168.1.10;
  mclt 3600;
peer port 647;
}
}
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 port failover ==
<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 ==
<pre>
<pre>
systemctl enable dhcpd
systemctl restart dhcpd
systemctl start dhcpd
</pre>
</pre>


----


 
{| style="width:100%; background:#e8f5e9; border:1px solid #c8e6c9; padding:15px; border-radius:10px; overflow:hidden;"
== Vérification synchronisation ==
|
<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.
 
 
= ✅ Infrastructure DHCP opérationnelle =

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