SP2 - Mission 2 - Mise en place du serveur DHCP sous Linux
👤 Fiche rédigée par : GADONNAUD Ewen
🎓 Formation : BTS SIO 1ère année - Option SISR
🏫 Établissement : Lycée Paul-Louis Courier, Tours
📅 Date : Mars 2026
Ce guide couvre l'installation et la configuration de Kea DHCP sur le serveur MN11 (Debian), afin de distribuer des adresses IP à plusieurs VLANs via un mécanisme de relay DHCP (ip helper-address) configuré sur le routeur Cisco 1921.
Prérequis
- Serveur MN11 sous Debian avec accès root
- Plan d'adressage VLSM défini (voir Mission 1 SP1)
- Routeur Cisco 1921 configuré avec des sous-interfaces par VLAN
1. Installation de Kea DHCP
isc-dhcp-server étant déprécié, on utilise son remplaçant moderne Kea DHCP, également développé par l'ISC.
2. Configuration
La configuration se fait en JSON dans /etc/kea/kea-dhcp4.conf. Sauvegarder d'abord le fichier par défaut :
Remplacer ensuite le contenu par la configuration suivante :
{
"Dhcp4": {
"interfaces-config": {
"interfaces": ["ens3"]
},
"lease-database": {
"type": "memfile",
"persist": true,
"name": "/var/lib/kea/dhcp4.leases"
},
"option-data": [ { "name": "domain-name", "data": "millenuits.fr" } ],
"subnet4": [
{
"id": 1,
"subnet": "172.40.0.0/24",
"pools": [{ "pool": "172.40.0.2 - 172.40.0.253" }],
"option-data": [
{ "name": "routers", "data": "172.40.0.254" },
{ "name": "domain-name-servers", "data": "8.8.8.8" }
]
},
{
"id": 2,
"subnet": "172.40.1.0/25",
"pools": [{ "pool": "172.40.1.2 - 172.40.1.125" }],
"option-data": [
{ "name": "routers", "data": "172.40.1.126" },
{ "name": "domain-name-servers", "data": "8.8.8.8" }
]
},
{
"id": 3,
"subnet": "172.40.1.128/25",
"pools": [{ "pool": "172.40.1.130 - 172.40.1.253" }],
"option-data": [
{ "name": "routers", "data": "172.40.1.254" },
{ "name": "domain-name-servers", "data": "8.8.8.8" }
]
},
{
"id": 4,
"subnet": "172.40.2.0/26",
"pools": [{ "pool": "172.40.2.2 - 172.40.2.61" }],
"option-data": [
{ "name": "routers", "data": "172.40.2.62" },
{ "name": "domain-name-servers", "data": "8.8.8.8" }
]
},
{
"id": 5,
"subnet": "172.40.2.64/26",
"pools": [{ "pool": "172.40.2.66 - 172.40.2.125" }],
"option-data": [
{ "name": "routers", "data": "172.40.2.126" },
{ "name": "domain-name-servers", "data": "8.8.8.8" }
]
}
]
}
}
Note : Adapter
"interfaces"au nom réel de l'interface réseau du serveur (ip apour vérifier). Dans notre cas, c'est l'interfaceens3Note : Depuis Kea 2.6.0, chaque subnet doit avoir un champ
"id"explicite et unique. Sans ce champ, Kea refuse de démarrer avec l'erreursubnet configuration failed: missing parameter.
3. Création du fichier de leases
Kea ne crée pas automatiquement son fichier de leases (baux). Il faut le créer manuellement et lui attribuer les bonnes permissions :
sudo mkdir -p /var/lib/kea
sudo touch /var/lib/kea/dhcp4.leases
sudo chown -R _kea:_kea /var/lib/kea
sudo chmod 755 /var/lib/kea
sudo chmod 644 /var/lib/kea/dhcp4.leases
4. Problème AppArmor
Sur Debian, AppArmor est actif par défaut et son profil pour Kea l'empêche d'accéder à ses propres fichiers de configuration et de leases, même avec les bonnes permissions filesystem. Cela se manifeste par l'erreur :
Pour corriger, désactiver le profil AppArmor de Kea :
sudo ln -s /etc/apparmor.d/usr.sbin.kea-dhcp4 /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.kea-dhcp4
5. Démarrage du service
sudo systemctl enable kea-dhcp4-server
sudo systemctl restart kea-dhcp4-server
sudo systemctl status kea-dhcp4-server
Pour surveiller les leases attribuées :
6. Configuration du relay DHCP côté routeur Cisco
Pour que les clients dans chaque VLAN puissent contacter le serveur DHCP centralisé, configurer ip helper-address sur chaque sous-interface VLAN du routeur 1921 :
À répéter sur toutes les sous-interfaces. Le routeur intercepte les broadcasts DHCP des clients et les relaie en unicast vers MN11 en ajoutant le champ giaddr (IP de la sous-interface), ce qui permet à Kea d'identifier le bon subnet et d'attribuer une adresse du bon pool.
Récapitulatif des subnets
| ID | Subnet | Pool | Passerelle | VLAN |
|---|---|---|---|---|
| 1 | 172.40.0.0/24 |
.2 → .253 |
172.40.0.254 |
Production |
| 2 | 172.40.1.0/25 |
.2 → .125 |
172.40.1.126 |
Autres |
| 3 | 172.40.1.128/25 |
.130 → .253 |
172.40.1.254 |
Administration |
| 4 | 172.40.2.0/26 |
.2 → .61 |
172.40.2.62 |
VentesEtudes |
| 5 | 172.40.2.64/26 |
.66 → .125 |
172.40.2.126 |