Pourquoi mettre en place un DNS interne dans un lab ?
Dans beaucoup de labs, on utilise des adresses IP en dur ou un simple fichier /etc/hosts. Ça fonctionne… jusqu’au jour où :
- le lab grandit,
- plusieurs services communiquent entre eux,
- on veut se rapprocher d’une infrastructure réelle.
Un DNS interne permet notamment de :
- Résoudre des noms de machines sans dépendre d’Internet
- Centraliser la résolution de noms
- Simuler un environnement d’entreprise
- Préparer des scénarios réalistes (AD, messagerie, reverse proxy, supervision…)
Architecture du lab
Hypothèses
- Hyperviseur ou environnement de virtualisation (Proxmox, VirtualBox, VMware…)
- Réseau interne isolé
- Une VM dédiée au DNS
Exemple de plan d’adressage
| Machine | Rôle | IP |
|---|---|---|
| dns01 | Serveur DNS | 192.168.100.10 |
| web01 | Serveur web | 192.168.100.20 |
| client01 | Client de test | 192.168.100.30 |
Domaine interne
Dans ce lab, on utilisera le domaine :
lab.local
⚠️ Domaine réservé uniquement au lab (pas utilisé sur Internet)
Choix techniques
- OS : Debian 13 (stable, minimal)
- Serveur DNS : Bind9
Installation du serveur DNS
Mise à jour du système
apt update && apt upgrade -y
Installation de Bind9
apt install bind9 bind9utils bind9-doc -y
Vérification du service
systemctl status bind9
Le service doit être actif et démarré.
Configuration de Bind9
Fichier principal
Les fichiers de configuration se trouvent dans :
/etc/bind/
Nous allons principalement modifier :
named.conf.optionsnamed.conf.local
Configuration des options globales
Éditer le fichier :
nano /etc/bind/named.conf.options
Exemple de configuration simple :
options {
directory "/var/cache/bind";
recursion yes;
allow-recursion { 192.168.100.0/24; };
listen-on { 127.0.0.1; 192.168.100.10; };
allow-query { any; };
forwarders {
1.1.1.1;
8.8.8.8;
};
dnssec-validation auto;
};
Déclaration de la zone DNS
Ajout de la zone directe
Éditer :
nano /etc/bind/named.conf.local
Ajouter :
zone "lab.local" {
type master;
file "/etc/bind/db.lab.local";
};
Création du fichier de zone
Copier un modèle existant :
cp /etc/bind/db.local /etc/bind/db.lab.local
Éditer le fichier :
nano /etc/bind/db.lab.local
Exemple de contenu :
$TTL 604800
@ IN SOA dns01.lab.local. admin.lab.local. (
2026020101
604800
86400
2419200
604800 )
;
@ IN NS dns01.lab.local.
; Serveur DNS
@ IN A 192.168.100.10
dns01 IN A 192.168.100.10
; Serveur web
web01 IN A 192.168.100.20
Vérification de la configuration
Vérification syntaxique
named-checkconf
named-checkzone lab.local /etc/bind/db.lab.local
Redémarrage du service
systemctl restart bind9
Configuration des clients
Sur une machine cliente, modifier /etc/resolv.conf (ou via NetworkManager) :
nameserver 192.168.100.10
search lab.local
Tests
Test avec dig
dig web01.lab.local
Test avec nslookup
nslookup web01.lab.local
La résolution doit retourner l’adresse IP du serveur web.
Configuration de la zone reverse (résolution inverse)
La zone reverse permet de résoudre une adresse IP vers un nom de machine. Elle est souvent négligée en lab, mais elle est pourtant essentielle pour :
- certains services (messagerie, supervision, logs),
- le réalisme d’une infrastructure d’entreprise,
- le diagnostic réseau.
Principe
Pour le réseau 192.168.100.0/24, la zone reverse associée est :
100.168.192.in-addr.arpa
Déclaration de la zone reverse
Éditer le fichier :
nano /etc/bind/named.conf.local
Ajouter :
zone "100.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.100";
};
Création du fichier de zone reverse
Créer le fichier à partir d’un modèle :
cp /etc/bind/db.127 /etc/bind/db.192.168.100
Éditer le fichier :
nano /etc/bind/db.192.168.100
Exemple de contenu :
$TTL 604800
@ IN SOA dns01.lab.local. admin.lab.local. (
2026020101
604800
86400
2419200
604800 )
;
@ IN NS dns01.lab.local.
10 IN PTR dns01.lab.local.
20 IN PTR web01.lab.local.
Vérification et tests
named-checkzone 100.168.192.in-addr.arpa /etc/bind/db.192.168.100
systemctl restart bind9
Test depuis un client :
dig -x192.168.100.20
La commande doit retourner le nom web01.lab.local.
Erreurs courantes
- Numéro de série SOA non incrémenté
- Erreur de syntaxe dans le fichier de zone
- Mauvaise IP d’écoute (
listen-on) - Firewall bloquant le port 53 (UDP/TCP)
Conclusion
Mettre en place un DNS interne est une brique essentielle dans tout lab sérieux. Cette installation simple permet déjà de couvrir 80 % des besoins et sert de base solide pour des scénarios plus avancés.
Laisser un commentaire