« DHCP » : différence entre les versions
Aucun résumé des modifications |
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. | ||
Vérifier l'utilisateur : | |||
<pre> | |||
whoami | |||
</pre> | |||
Résultat attendu : | |||
<pre> | |||
root | |||
</pre> | |||
Le serveur doit avoir : | Le serveur doit avoir : | ||
| Ligne 10 : | Ligne 21 : | ||
Voir interfaces réseau : | Voir interfaces réseau : | ||
<pre> | |||
ip a | ip a | ||
</pre> | |||
================================================================ | ================================================================ | ||
| Ligne 23 : | Ligne 33 : | ||
Rocky Linux utilise ISC DHCP Server. | Rocky Linux utilise ISC DHCP Server. | ||
<pre> | |||
dnf install dhcp-server -y | dnf install dhcp-server -y | ||
</pre> | |||
Vérifier installation : | Vérifier installation : | ||
<pre> | |||
rpm -qa | grep dhcp | rpm -qa | grep dhcp | ||
</pre> | |||
--- | --- | ||
| Ligne 41 : | Ligne 49 : | ||
Identifier l’interface réseau : | Identifier l’interface réseau : | ||
<pre> | |||
ip a | ip a | ||
</pre> | |||
Configurer l’interface utilisée par DHCP : | Configurer l’interface utilisée par DHCP : | ||
<pre> | |||
nano /etc/sysconfig/dhcpd | nano /etc/sysconfig/dhcpd | ||
</pre> | |||
Modifier : | Modifier : | ||
<pre> | |||
DHCPDARGS=ens33 | DHCPDARGS=ens33 | ||
</pre> | |||
(Remplacer ens33 par votre interface réseau) | (Remplacer ens33 par votre interface réseau) | ||
| Ligne 66 : | Ligne 71 : | ||
== Création du fichier de configuration principal == | == Création du fichier de configuration principal == | ||
<pre> | |||
nano /etc/dhcp/dhcpd.conf | nano /etc/dhcp/dhcpd.conf | ||
</pre> | |||
Configuration minimale : | Configuration minimale : | ||
<pre> | |||
option domain-name "lab.local"; | option domain-name "lab.local"; | ||
option domain-name-servers 8.8.8.8, 1.1.1.1; | option domain-name-servers 8.8.8.8, 1.1.1.1; | ||
| Ligne 83 : | Ligne 88 : | ||
subnet 192.168.1.0 netmask 255.255.255.0 { | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
range 192.168.1.100 192.168.1.200; | range 192.168.1.100 192.168.1.200; | ||
option routers 192.168.1.1; | option routers 192.168.1.1; | ||
option broadcast-address 192.168.1.255; | option broadcast-address 192.168.1.255; | ||
} | } | ||
</pre> | |||
--- | --- | ||
| Ligne 125 : | Ligne 128 : | ||
Tester avant démarrage : | Tester avant démarrage : | ||
<pre> | |||
dhcpd -t | dhcpd -t | ||
</pre> | |||
--- | --- | ||
| Ligne 134 : | Ligne 136 : | ||
== Démarrage du service == | == Démarrage du service == | ||
<pre> | |||
systemctl enable dhcpd | systemctl enable dhcpd | ||
systemctl start dhcpd | systemctl start dhcpd | ||
systemctl status dhcpd | systemctl status dhcpd | ||
</pre> | |||
--- | --- | ||
| Ligne 145 : | Ligne 146 : | ||
== Ouverture firewall == | == Ouverture firewall == | ||
<pre> | |||
firewall-cmd --add-service=dhcp --permanent | firewall-cmd --add-service=dhcp --permanent | ||
firewall-cmd --reload | firewall-cmd --reload | ||
</pre> | |||
--- | --- | ||
| Ligne 157 : | Ligne 157 : | ||
Logs : | Logs : | ||
<pre> | |||
journalctl -u dhcpd | journalctl -u dhcpd | ||
</pre> | |||
Baux DHCP : | Baux DHCP : | ||
<pre> | |||
cat /var/lib/dhcpd/dhcpd.leases | cat /var/lib/dhcpd/dhcpd.leases | ||
</pre> | |||
================================================================ | ================================================================ | ||
| Ligne 177 : | Ligne 175 : | ||
Permet de donner toujours la même IP à une machine. | Permet de donner toujours la même IP à une machine. | ||
<pre> | |||
host pc1 { | host pc1 { | ||
hardware ethernet 00:11:22:33:44:55; | hardware ethernet 00:11:22:33:44:55; | ||
fixed-address 192.168.1.50; | fixed-address 192.168.1.50; | ||
} | } | ||
</pre> | |||
--- | --- | ||
| Ligne 189 : | Ligne 186 : | ||
== Gestion de plusieurs réseaux == | == Gestion de plusieurs réseaux == | ||
<pre> | |||
subnet 192.168.2.0 netmask 255.255.255.0 { | subnet 192.168.2.0 netmask 255.255.255.0 { | ||
range 192.168.2.100 192.168.2.200; | range 192.168.2.100 192.168.2.200; | ||
option routers 192.168.2.1; | option routers 192.168.2.1; | ||
} | } | ||
</pre> | |||
--- | --- | ||
| Ligne 203 : | Ligne 199 : | ||
Utilisé pour déploiement OS : | Utilisé pour déploiement OS : | ||
<pre> | |||
next-server 192.168.1.10; | next-server 192.168.1.10; | ||
filename "pxelinux.0"; | filename "pxelinux.0"; | ||
</pre> | |||
================================================================ | ================================================================ | ||
| Ligne 215 : | Ligne 210 : | ||
== Principe == | == Principe == | ||
Le DHCP fonctionne en broadcast. | Le DHCP fonctionne en broadcast. | ||
Les routeurs/firewalls bloquent les broadcasts entre réseaux. | Les routeurs/firewalls bloquent les broadcasts entre réseaux. | ||
| Ligne 222 : | Ligne 217 : | ||
Architecture : | Architecture : | ||
<pre> | |||
Client → Firewall → Serveur DHCP | Client → Firewall → Serveur DHCP | ||
</pre> | |||
--- | --- | ||
| Ligne 233 : | Ligne 227 : | ||
Sur le firewall Rocky Linux : | Sur le firewall Rocky Linux : | ||
<pre> | |||
dnf install dhcp-relay -y | dnf install dhcp-relay -y | ||
</pre> | |||
--- | --- | ||
| Ligne 242 : | Ligne 235 : | ||
== Configuration du relay == | == Configuration du relay == | ||
<pre> | |||
nano /etc/sysconfig/dhcrelay | nano /etc/sysconfig/dhcrelay | ||
</pre> | |||
Exemple : | Exemple : | ||
<pre> | |||
DHCPSERVERS="192.168.1.10" | DHCPSERVERS="192.168.1.10" | ||
INTERFACES="ens33 ens34" | INTERFACES="ens33 ens34" | ||
</pre> | |||
Explication : | Explication : | ||
| Ligne 264 : | Ligne 255 : | ||
== Activation du relay == | == Activation du relay == | ||
<pre> | |||
systemctl enable dhcrelay | systemctl enable dhcrelay | ||
systemctl start dhcrelay | systemctl start dhcrelay | ||
systemctl status dhcrelay | systemctl status dhcrelay | ||
</pre> | |||
--- | --- | ||
| Ligne 275 : | Ligne 265 : | ||
== Ouverture firewall == | == Ouverture firewall == | ||
<pre> | |||
firewall-cmd --add-service=dhcp --permanent | firewall-cmd --add-service=dhcp --permanent | ||
firewall-cmd --reload | firewall-cmd --reload | ||
</pre> | |||
================================================================ | ================================================================ | ||
| Ligne 288 : | Ligne 277 : | ||
Assurer la haute disponibilité du service DHCP. | Assurer la haute disponibilité du service DHCP. | ||
Si le serveur principal tombe, le secondaire prend automatiquement le relais. | Si le serveur principal tombe, le secondaire prend automatiquement le relais. | ||
| Ligne 325 : | Ligne 313 : | ||
== Architecture exemple == | == Architecture exemple == | ||
<pre> | |||
MASTER : 192.168.1.10 | MASTER : 192.168.1.10 | ||
SLAVE : 192.168.1.11 | SLAVE : 192.168.1.11 | ||
Réseau : 192.168.1.0/24 | Réseau : 192.168.1.0/24 | ||
</pre> | |||
Installer DHCP sur les deux serveurs : | Installer DHCP sur les deux serveurs : | ||
<pre> | |||
dnf install dhcp-server -y | dnf install dhcp-server -y | ||
</pre> | |||
--- | --- | ||
| Ligne 343 : | Ligne 329 : | ||
== Configuration MASTER == | == Configuration MASTER == | ||
<pre> | |||
nano /etc/dhcp/dhcpd.conf | nano /etc/dhcp/dhcpd.conf | ||
</pre> | |||
<pre> | |||
failover peer "dhcp-failover" { | failover peer "dhcp-failover" { | ||
primary; | primary; | ||
address 192.168.1.10; | address 192.168.1.10; | ||
port 647; | port 647; | ||
peer address 192.168.1.11; | peer address 192.168.1.11; | ||
peer port 647; | peer port 647; | ||
max-response-delay 60; | max-response-delay 60; | ||
max-unacked-updates 10; | max-unacked-updates 10; | ||
load balance max seconds 3; | load balance max seconds 3; | ||
} | } | ||
subnet 192.168.1.0 netmask 255.255.255.0 { | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
option routers 192.168.1.1; | option routers 192.168.1.1; | ||
option domain-name-servers 8.8.8.8; | option domain-name-servers 8.8.8.8; | ||
pool { | pool { | ||
failover peer "dhcp-failover"; | failover peer "dhcp-failover"; | ||
range 192.168.1.100 192.168.1.200; | range 192.168.1.100 192.168.1.200; | ||
} | } | ||
} | } | ||
</pre> | |||
--- | --- | ||
| Ligne 374 : | Ligne 360 : | ||
== Configuration SLAVE == | == Configuration SLAVE == | ||
<pre> | |||
nano /etc/dhcp/dhcpd.conf | nano /etc/dhcp/dhcpd.conf | ||
</pre> | |||
<pre> | |||
failover peer "dhcp-failover" { | failover peer "dhcp-failover" { | ||
secondary; | secondary; | ||
address 192.168.1.11; | address 192.168.1.11; | ||
port 647; | port 647; | ||
peer address 192.168.1.10; | peer address 192.168.1.10; | ||
peer port 647; | peer port 647; | ||
} | } | ||
subnet 192.168.1.0 netmask 255.255.255.0 { | subnet 192.168.1.0 netmask 255.255.255.0 { | ||
option routers 192.168.1.1; | option routers 192.168.1.1; | ||
option domain-name-servers 8.8.8.8; | option domain-name-servers 8.8.8.8; | ||
pool { | pool { | ||
failover peer "dhcp-failover"; | failover peer "dhcp-failover"; | ||
range 192.168.1.100 192.168.1.200; | range 192.168.1.100 192.168.1.200; | ||
} | } | ||
} | } | ||
</pre> | |||
--- | --- | ||
| Ligne 402 : | Ligne 388 : | ||
== Ouverture ports failover (sur les deux serveurs) == | == Ouverture ports failover (sur les deux serveurs) == | ||
<pre> | |||
firewall-cmd --add-port=647/tcp --permanent | firewall-cmd --add-port=647/tcp --permanent | ||
firewall-cmd --reload | firewall-cmd --reload | ||
</pre> | |||
--- | --- | ||
| Ligne 412 : | Ligne 397 : | ||
== Démarrage du service sur les deux serveurs == | == Démarrage du service sur les deux serveurs == | ||
<pre> | |||
systemctl enable dhcpd | systemctl enable dhcpd | ||
systemctl start dhcpd | systemctl start dhcpd | ||
</pre> | |||
--- | --- | ||
| Ligne 422 : | Ligne 406 : | ||
== Vérification synchronisation == | == Vérification synchronisation == | ||
<pre> | |||
journalctl -u dhcpd | journalctl -u dhcpd | ||
</pre> | |||
Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire. | Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire. | ||
Version du 16 février 2026 à 14:14
DHCP
Le DHCP (Dynamic Host Configuration Protocol) permet d'attribuer automatiquement des adresses IP aux machines du réseau.
Vérifier l'utilisateur :
whoami
Résultat attendu :
root
Le serveur doit avoir :
- une IP fixe
- une interface réseau active
- accès réseau fonctionnel
Voir interfaces réseau :
ip a
====================================================
1 — Serveur DHCP : Création
Installation du serveur DHCP
Rocky Linux utilise ISC DHCP Server.
dnf install dhcp-server -y
Vérifier installation :
rpm -qa | grep dhcp
---
Configuration de l’interface DHCP
Identifier l’interface réseau :
ip a
Configurer l’interface utilisée par DHCP :
nano /etc/sysconfig/dhcpd
Modifier :
DHCPDARGS=ens33
(Remplacer ens33 par votre interface réseau)
---
Création du fichier de configuration principal
nano /etc/dhcp/dhcpd.conf
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;
}
---
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
---
Démarrage du service
systemctl enable dhcpd systemctl start dhcpd systemctl status dhcpd
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
---
Vérification fonctionnement
Logs :
journalctl -u dhcpd
Baux DHCP :
cat /var/lib/dhcpd/dhcpd.leases
====================================================
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;
}
---
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;
}
---
Options PXE (boot réseau)
Utilisé pour déploiement OS :
next-server 192.168.1.10; filename "pxelinux.0";
====================================================
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
---
Installation du DHCP Relay
Sur le firewall Rocky Linux :
dnf install dhcp-relay -y
---
Configuration du relay
nano /etc/sysconfig/dhcrelay
Exemple :
DHCPSERVERS="192.168.1.10" INTERFACES="ens33 ens34"
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
---
Ouverture firewall
firewall-cmd --add-service=dhcp --permanent firewall-cmd --reload
====================================================
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
Installer DHCP sur les deux serveurs :
dnf install dhcp-server -y
---
Configuration MASTER
nano /etc/dhcp/dhcpd.conf
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;
}
}
---
Configuration SLAVE
nano /etc/dhcp/dhcpd.conf
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;
}
}
---
Ouverture ports failover (sur les deux serveurs)
firewall-cmd --add-port=647/tcp --permanent firewall-cmd --reload
---
Démarrage du service sur les deux serveurs
systemctl enable dhcpd systemctl start dhcpd
---
Vérification synchronisation
journalctl -u dhcpd
Le serveur secondaire doit indiquer la synchronisation avec le serveur primaire.