📡 Module R9 – DHCP

📘 Cours complet ⏱ 2h 🎯 Bloc 1 – RĂ©seau
Objectifs : comprendre le protocole DHCP, configurer un serveur DHCP sous Linux, analyser les échanges et gérer les baux.

📖 Introduction

Le Dynamic Host Configuration Protocol (DHCP) est un protocole rĂ©seau qui permet d’attribuer automatiquement des adresses IP et d’autres paramĂštres de configuration Ă  des Ă©quipements (postes, serveurs, imprimantes) sur un rĂ©seau. Il simplifie l’administration et Ă©vite les conflits d’adresses.

🎯

À l'issue de ce module, vous serez capable de :

  • Expliquer le fonctionnement de DHCP (DORA).
  • Installer et configurer un serveur DHCP (isc-dhcp-server) sous Debian.
  • DĂ©finir des plages, des rĂ©servations et des options.
  • Analyser les logs et les baux DHCP.

🔍 Qu'est-ce que DHCP ?

DHCP est un protocole de la couche application (OSI) qui fonctionne en mode client/serveur. Il utilise les ports UDP 67 (serveur) et 68 (client).

📐 Fonctionnement – Le cycle DORA

Le processus d’obtention d’une adresse IP se dĂ©roule en 4 Ă©tapes :

ÉtapeDescriptionMessage
1. DiscoveryLe client envoie un message de découverte en broadcast (255.255.255.255) pour trouver un serveur DHCP.DHCPDISCOVER
2. OfferLe serveur répond avec une offre contenant une adresse IP proposée.DHCPOFFER
3. RequestLe client accepte l’offre et demande l’adresse IP au serveur.DHCPREQUEST
4. AcknowledgmentLe serveur confirme l’attribution et envoie les paramùtres (masque, DNS, etc.).DHCPACK

Une fois le bail obtenu, le client renouvellera automatiquement avant expiration.

đŸ› ïž Installation et configuration sous Debian

Installation du serveur

sudo apt update && sudo apt install isc-dhcp-server -y

Le fichier de configuration principal est /etc/dhcp/dhcpd.conf.

Configuration de base

Exemple de configuration pour le réseau 192.168.1.0/24

# /etc/dhcp/dhcpd.conf
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 domain-name-servers 8.8.8.8, 1.1.1.1;
    option domain-name "mon-domaine.local";
    default-lease-time 600;
    max-lease-time 7200;
}
  • subnet : dĂ©finit le rĂ©seau et son masque.
  • range : plage d’adresses attribuables.
  • option routers : passerelle par dĂ©faut.
  • option domain-name-servers : DNS.
  • default-lease-time : durĂ©e du bail en secondes.

RĂ©servation d’adresse (fixe)

host imprimante {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 192.168.1.10;
}

Associe une adresse IP fixe à une adresse MAC donnée.

Démarrage et activation

sudo systemctl enable isc-dhcp-server
sudo systemctl start isc-dhcp-server

Vérifier le statut : sudo systemctl status isc-dhcp-server

Analyse des logs et des baux

sudo tail -f /var/log/syslog | grep dhcp
cat /var/lib/dhcp/dhcpd.leases

đŸ§Ș Mise en pratique

Configuration d’un serveur DHCP sur une machine Debian

1. DĂ©finir l’interface rĂ©seau sur laquelle Ă©couter

# /etc/default/isc-dhcp-server
INTERFACESv4="eth0"

2. Configurer le fichier dhcpd.conf (exemple ci-dessus)

3. Redémarrer le service : sudo systemctl restart isc-dhcp-server

4. Tester depuis un client : dhclient eth0

📝 Exercices d'application

Exercice 1 – Cycle DORA

Quelle est la premiÚre étape du cycle DORA ?

La premiÚre étape est le DHCPDISCOVER (Discovery).

Exercice 2 – Configuration DHCP

Écrire la configuration DHCP pour un rĂ©seau 10.0.0.0/24 avec une plage de 10.0.0.50 Ă  10.0.0.100, passerelle 10.0.0.1, DNS 8.8.8.8 et un bail de 1 heure.

subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.50 10.0.0.100;
    option routers 10.0.0.1;
    option domain-name-servers 8.8.8.8;
    default-lease-time 3600;
}

🎯 Quiz d'auto‑évaluation

1. DHCP utilise les ports UDP 67 (serveur) et 68 (client).

2. La réservation DHCP associe une adresse IP à une adresse MAC.

3. Le fichier de configuration principal de isc-dhcp-server est /etc/dhcp/dhcpd.conf.

4. Le message DHCPOFFER est envoyé par le client.

5. La commande dhclient eth0 permet de libérer et renouveler un bail.

📚 Ressources


← Retour au portail
BTS SIO – LycĂ©e NDLP Avranches – Module R9 v1.0