Aucun résumé des modifications
 
(13 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;"
 
= Infrastructure DHCP — Rocky Linux =
 
{| style="width:100%; background:#f5f7fa; border:1px solid #d6dbe1; padding:10px;"
|
|
'''Documentation complète de mise en place d’une infrastructure DHCP sous Rocky Linux'''
<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.
* Création du serveur DHCP
</span>
* Configuration détaillée
* DHCP Relay sur firewall
* DHCP Maître / Esclave (Failover)
* Haute disponibilité du service
|}
|}


__TOC__
= <span style="color:#2c3e50;">Infrastructure DHCP Rocky Linux</span> =
 
 
 
= 0 Prérequis =


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


== Vérifier l'utilisateur ==
__TOC__


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


Résultat attendu :
{| style="width:100%; background:#f3f9f1; border:1px solid #cfe5c9; padding:12px; border-radius:10px; overflow:hidden;"
<pre>
root
</pre>
 
== Configuration requise ==
 
* IP fixe configurée
* Interface réseau active
* Accès réseau fonctionnel
 
Voir interfaces réseau :
 
<pre>
ip a
</pre>
 
 
 
= 1 — Création du Serveur DHCP =
 
{| style="width:100%; background:#f3f9f1; border:1px solid #cfe5c9;"
|
|
'''Installation et configuration du service DHCP'''
<b style="color:#196f3d;">Installation et configuration du service DHCP</b>
|}
|}


== Installation du service ==
== <span style="color:#239b56;">Installation du service</span> ==


<pre>
<pre>
Ligne 65 : Ligne 32 :
</pre>
</pre>


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


<pre>
<pre>
Ligne 71 : Ligne 38 :
</pre>
</pre>


 
== <span style="color:#239b56;">Configuration principale</span> ==
 
== Configuration de l’interface réseau ==
 
Identifier interface :


<pre>
<pre>
ip a
vi /etc/dhcp/dhcpd.conf
</pre>
 
Configurer DHCP :
 
<pre>
nano /etc/sysconfig/dhcpd
</pre>
 
Modifier :
 
<pre>
DHCPDARGS=ens33
</pre>
 
 
 
== Configuration principale ==
 
<pre>
nano /etc/dhcp/dhcpd.conf
</pre>
</pre>


Ligne 104 : 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>
Ligne 130 : Ligne 62 :
</pre>
</pre>


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


<pre>
<pre>
Ligne 140 : 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 ==


<pre>
<pre>
journalctl -u dhcpd
systemctl reload iptables
cat /var/lib/dhcpd/dhcpd.leases
</pre>
</pre>


----


= <span style="color:#b9770e;">2 — Configuration DHCP détaillée</span> =


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


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


{| class="wikitable" style="background:#ffffff;"
{| 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 || Serveur DHCP 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 ==


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


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


== Plusieurs réseaux ==
----


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


 
{| style="width:100%; background:#f5eef8; border:1px solid #d7c6e6; padding:12px; border-radius:10px; overflow:hidden;"
 
== Boot réseau PXE ==
 
<pre>
next-server 192.168.1.10;
filename "pxelinux.0";
</pre>
 
 
 
= 3 — DHCP Relay sur Firewall =
 
{| style="width:100%; background:#f5eef8; border:1px solid #d7c6e6;"
|
|
'''Transmission des requêtes DHCP entre réseaux'''
<b style="color:#7d3c98;">Transmission des requêtes DHCP entre réseaux</b>
|}
|}


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


<div style="background:#fafafa; border:1px solid #ddd; padding:10px;">
{| 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 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.
</div>
|}


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


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


<pre>
<pre>
Ligne 253 : Ligne 151 :
</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>
Ajouter :


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


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


<pre>
<pre>
Ligne 275 : Ligne 175 :
</pre>
</pre>


----


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


= 4 — DHCP Maître / Esclave (Failover) =
{| style="width:100%; background:#fdeeee; border:1px solid #efc2c2; padding:12px; border-radius:10px; overflow:hidden;"
 
{| style="width:100%; background:#fdeeee; border:1px solid #efc2c2;"
|
|
'''Haute disponibilité du service DHCP'''
<b style="color:#922b21;">Haute disponibilité du service DHCP</b>
|}
|}


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


* Continuité de service
* Continuité de service
Ligne 290 : Ligne 190 :
* 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 ==
 
{| class="wikitable"
! Mode !! Description
! Mode !! Description
|-
|-
Ligne 302 : Ligne 200 :
|}
|}


----


= <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;"
 
{| style="width:100%; background:#eef7f6; border:1px solid #bfe1dc;"
|
|
'''Configuration complète du failover DHCP'''
<b style="color:#117864;">Configuration complète du failover DHCP</b>
|}
|}


== Architecture ==
== <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
</pre>
</pre>


Installer sur les deux :
Installation sur les deux serveurs :


<pre>
<pre>
Ligne 324 : Ligne 222 :
</pre>
</pre>


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


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


subnet 192.168.1.0 netmask 255.255.255.0 {
subnet 192.168.30.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
    authoritative;
 
    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;


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


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


== Configuration SLAVE ==
    pool {
 
        failover peer "dhcp";
<pre>
        option routers 192.168.30.254;
failover peer "dhcp-failover" {
        range 192.168.30.10 192.168.30.50;
secondary;
    }
address 192.168.1.11;
port 647;
peer address 192.168.1.10;
peer port 647;
}
}
</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 ==


<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;"
{| style="width:100%; background:#e8f5e9; border:1px solid #c8e6c9;"
|
|
'''Infrastructure DHCP opérationnelle'''
<span style="font-size:120%; color:#1e8449;">
<b>Infrastructure DHCP opérationnelle</b>
</span>
|}
|}

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