Aucun résumé des modifications
 
(19 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>
|}


Le serveur doit avoir :
= <span style="color:#2c3e50;">Infrastructure DHCP — Rocky Linux</span> =
* une IP fixe
* une interface réseau active
* accès réseau fonctionnel


Voir interfaces réseau :
{| 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>
|}


ip a
__TOC__


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


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


Rocky Linux utilise ISC DHCP Server.
== <span style="color:#239b56;">Installation du service</span> ==


<pre>
dnf install dhcp-server -y
dnf install dhcp-server -y
</pre>


yaml
Vérifier l’installation :
Copier le code
 
Vérifier installation :


<pre>
rpm -qa | grep dhcp
rpm -qa | grep dhcp
</pre>


yaml
== <span style="color:#239b56;">Configuration principale</span> ==
Copier le code


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


== Configuration de l’interface DHCP ==
Configuration minimale :


Identifier l’interface réseau :
<pre>
subnet 192.168.30.0 netmask 255.255.255.0 {
    authoritative;


ip a
    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;
    range 192.168.30.10 192.168.30.50;
}
</pre>


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


Configurer l’interface utilisée par DHCP :
<pre>
dhcpd -t
</pre>


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


yaml
<pre>
Copier le code
systemctl enable dhcpd
systemctl start dhcpd
systemctl status dhcpd
</pre>


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


DHCPDARGS=ens33
<pre>
vi /etc/sysconfig/iptables
-I INPUT 2 -p udp --dport 67 -j ACCEPT
</pre>


yaml
== <span style="color:#239b56;">Enregistrement des changements</span> ==
Copier le code


(Remplacer ens33 par votre interface réseau)
<pre>
systemctl reload iptables
</pre>


---
----


== Création du fichier de configuration principal ==
= <span style="color:#b9770e;">2 — Configuration DHCP détaillée</span> =


nano /etc/dhcp/dhcpd.conf
{| 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>
|}


yaml
== <span style="color:#ca6f1e;">Explication des directives</span> ==
Copier le code


Configuration minimale :
{| class="wikitable" style="width:50%; background:#ffffff; border:1px solid #fad7a0; border-radius:10px; overflow:hidden;"
 
! Directive !! Description
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
| subnet || Réseau géré
|-
| 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
|-
|-
| authoritative || Serveur DHCP officiel du réseau
| option routers || Passerelle réseau
|-
|-
| subnet || Réseau géré
| option domain-name-servers || Serveurs DNS fournis
|-
|-
| range || Plage IP distribuée
| range || Plage IP distribuée
|-
| option routers || Passerelle
|-
| broadcast-address || Adresse broadcast
|}
|}


---
== <span style="color:#ca6f1e;">Attribution d’une IP fixe</span> ==
 
== 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 {
<pre>
hardware ethernet 00:11:22:33:44:55;
host dhcp1 {
fixed-address 192.168.1.50;
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.40.253;
}
}
</pre>


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


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


== Gestion de plusieurs réseaux ==
----


subnet 192.168.2.0 netmask 255.255.255.0 {
= <span style="color:#7d3c98;">3 — DHCP Relay sur Firewall</span> =
range 192.168.2.100 192.168.2.200;
option routers 192.168.2.1;
}


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


next-server 192.168.1.10;
== <span style="color:#884ea0;">Principe</span> ==
filename "pxelinux.0";
 
bash
Copier le code
 
================================================================
 
= 3 — DHCP Relay sur Firewall =
 
== Principe ==


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


Architecture :
Architecture :


<pre>
Client → Firewall → Serveur DHCP
Client → Firewall → Serveur DHCP
</pre>


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


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


yaml
== <span style="color:#884ea0;">Configuration</span> ==
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 :
<pre>
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>


* DHCPSERVERS → IP du serveur DHCP
Ajouter :
* INTERFACES → interface côté client + interface côté serveur


---
<pre>
INTERFACES="dmz pri lan"
DHCPSERVERS="192.168.40.253"
</pre>


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


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


yaml
----
Copier le code


---
= <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;"
 
|
firewall-cmd --add-service=dhcp --permanent
<b style="color:#922b21;">Haute disponibilité du service DHCP</b>
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
== <span style="color:#a93226;">Objectif</span> ==
* partage des adresses IP
* continuité de service
* prévention des conflits IP


---
* Continuité de service
* Synchronisation des baux
* Prévention des conflits IP


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


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


MASTER : 192.168.1.10
== <span style="color:#148f77;">Architecture</span> ==
SLAVE : 192.168.1.11
Réseau : 192.168.1.0/24


yaml
<pre>
Copier le code
MASTER : 192.168.40.253
SLAVE  : 192.168.40.251
</pre>


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


<pre>
dnf install dhcp-server -y
dnf install dhcp-server -y
</pre>


yaml
== <span style="color:#148f77;">Configuration MASTER</span> ==
Copier le code


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


== Configuration MASTER ==
subnet 192.168.30.0 netmask 255.255.255.0 {
    authoritative;


nano /etc/dhcp/dhcpd.conf
    option routers 192.168.30.254;
    option domain-name-servers 192.168.40.253;


Copier le code
    pool {
failover peer "dhcp-failover" {
        failover peer "dhcp";
primary;
        option routers 192.168.30.254;
address 192.168.1.10;
        range 192.168.30.10 192.168.30.50;
port 647;
    }
peer address 192.168.1.11;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
load balance max seconds 3;
}
}
</pre>


subnet 192.168.1.0 netmask 255.255.255.0 {
== <span style="color:#148f77;">Configuration SLAVE</span> ==
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;


pool {
<pre>
failover peer "dhcp-failover";
failover peer "dhcp" {
range 192.168.1.100 192.168.1.200;
  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;


yaml
    pool {
Copier le code
        failover peer "dhcp";
 
        option routers 192.168.30.254;
---
        range 192.168.30.10 192.168.30.50;
 
    }
== 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;
}
}
</pre>


subnet 192.168.1.0 netmask 255.255.255.0 {
== <span style="color:#148f77;">Ouverture du port failover</span> ==
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8;


pool {
<pre>
failover peer "dhcp-failover";
vi /etc/sysconfig/iptables
range 192.168.1.100 192.168.1.200;
-I INPUT 2 -p tcp --dport 520 -j ACCEPT
}
systemctl reload iptables
}
</pre>


yaml
== <span style="color:#148f77;">Redémarrage du service DHCP</span> ==
Copier le code


---
<pre>
systemctl restart dhcpd
</pre>


== Ouverture ports failover (sur les deux serveurs) ==
----


firewall-cmd --add-port=647/tcp --permanent
{| style="width:100%; background:#e8f5e9; border:1px solid #c8e6c9; padding:15px; border-radius:10px; overflow:hidden;"
firewall-cmd --reload
|
 
<span style="font-size:120%; color:#1e8449;">
yaml
<b>Infrastructure DHCP opérationnelle</b>
Copier le code
</span>
 
|}
---
 
== 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.

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