tuto linux bind9 pour domaine local sur reseau sans internet
  • 3 juin 2025
  • ComputaSYS
  • 0


I. Présentation

Ce tutoriel fait suite à l’article « Haute disponibilité DNS avec BIND9 – Déploiement pas à pas sur Linux » publié récemment, dans lequel nous avons mis en place une architecture DNS répartie avec des serveurs maîtres et secondaires pour garantir la redondance du service.

Dans cette continuité, nous allons décrire une configuration spécifique permettant de faire fonctionner BIND9 en mode local, sans accès Internet ni support IPv6. Ce type de configuration est utile dans les environnements isolés où le serveur DNS ne doit répondre qu’à des requêtes internes, par exemple, pour un domaine local comme example.local.

Le but est d’éviter les erreurs réseau et les tentatives de contact avec l’extérieur (serveurs DNS racine, DNSSEC, IPv6), afin d’obtenir un serveur DNS épuré et stable dans un réseau LAN isolé.

II. Contexte d’utilisation

Voici le contexte technique de ce cas d’usage :

Aucun accès Internet sur le serveur DNS

IPv6 désactivé localement

Serveur DNS destiné à résoudre uniquement des noms internes comme ceux associés au domaine example.local

Après le déploiement du service, et sans adapter la configuration pour ce contexte, on constate des erreurs dans les journaux du type :

network unreachable resolving ‘./DNSKEY/IN’: 2001:500:2f::f

Ces erreurs proviennent du fait que BIND tente de contacter des serveurs DNS racine sur Internet, notamment en IPv6, pour valider des signatures DNSSEC.

III. Analyse du comportement

Dans le fichier /etc/bind/named.conf.options, les lignes suivantes ont été activées. Cependant, ces fonctions ne sont pas nécessaires pour un usage local :

recursion yes;
dnssec-validation auto;
allow-recursion { trusted; };

Cela signifie que BIND :

Tente de résoudre des domaines externes qu’il ne connaît pas (récursivité)

Essaie de vérifier les signatures DNSSEC via les serveurs racine (liste dans /usr/share/dns/root.hints)

En clair, ces paramètres disent à Bind : “Si un client te demande un domaine que tu ne connais pas, va le chercher toi-même sur Internet.”

Le service DNS Bind essaie alors de contacter des IP comme 198.41.0.4 ou 2001:500:2f::f (serveurs DNS racine mondiaux), ce qui génère des erreurs si votre serveur est isolé du Web. Et, la ligne listen-on-v6 { none; }; n’empêche pas les requêtes sortantes, elle bloque juste l’écoute sur l’interface IPv6.

IV. Adaptation de la configuration

Le serveur DNS doit uniquement répondre à des requêtes internes. Il ne doit jamais contacter Internet, ni valider des signatures DNSSEC, ni utiliser IPv6.

Il convient donc de désactiver les fonctions suivantes :

La récursivité (recursion)

DNSSEC (dnssec-validation)

L’écoute IPv6 (listen-on-v6)

De ce fait, nous devons adapter la configuration de Bind9 pour appliquer ces changements. Voici une configuration propre pour un fonctionnement 100 % local :

options {
directory “/var/cache/bind”;

recursion no; // pas de résolution externe
allow-query { any; }; // autorise les clients internes
// allow-recursion { trusted; }; // inutile sans récursivité
// allow-transfer { trusted; }; // uniquement si HA prévu

dnssec-validation no; // désactive DNSSEC
auth-nxdomain no; // réponse standardisée
listen-on-v6 { none; }; // pas d’écoute IPv6
};

V. Option : déléguer la résolution externe (facultatif)

Si vous souhaitez tout de même résoudre des noms de domaine externes (sans que BIND contacte Internet directement), vous pouvez déléguer la résolution à un autre serveur DNS (comme celui de votre routeur). Dans l’exemple ci-dessous, nous configurons un redirecteur associé à l’adresse IP 192.168.1.1.

forwarders {
192.168.1.1;
};
forward only;
recursion yes;

VI. Désactivation complète d’IPv6 (facultatif)

Par ailleurs, pour aller plus loin dans la désactivation d’IPv6 à l’échelle du système, des étapes supplémentaires sont nécessaires. Voyons comment procéder sur Ubuntu.

Éditer le fichier /etc/sysctl.conf et ajouter :

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Appliquer les modifications immédiatement :

sudo sysctl -p

Vérifier que la désactivation est effective :

cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Doit retourner 1

VII. Conclusion

Cette configuration permet de déployer un serveur DNS BIND9 limité à la résolution des noms du domaine local. En supprimant les mécanismes inutiles dans un contexte déconnecté (récursivité, DNSSEC, IPv6), on évite les erreurs dans les journaux et on gagne en stabilité. Ce type de configuration est idéal dans les environnements industriels, les labos de tests ou tout réseau isolé du Web.

Pour ceux qui souhaitent garder la maîtrise de la résolution externe, l’ajout d’un forwarder interne permet de contrôler les flux sans exposer le serveur DNS directement à Internet. Pour en savoir plus sur les paramètres avancés de BIND9, référez-vous à la documentation officielle.

Besoin d’aide pour mettre en place un serveur DNS Bind9 ? Retrouvez notre tutoriel !

Administrateur systèmes et réseaux, passionné par les technologies open source et notamment Proxmox. Je partage ici mes retours d’expérience sur des infrastructures critiques, avec une approche orientée production et automatisation. Bonne lecture !



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *