Déployer un service DNS redondant avec BIND9 sous Linux

Ilyes HAMDANE - ITConnect - 28/05
Apprenez à déployer un service DNS avec de la haute disponibilité grâce à des serveurs DNS BIND9 sous Linux. Tutoriel complet étape par étape.

Sommaire

  • I. Présentation
    • A. Principe de fonctionnement
    • B. Schéma logique
  • II. Installation de BIND9
    • A. Présentation des fichiers BIND par défaut
  • III. Configuration de BIND
    • A. ACL et options globales dans BIND9
    • B. Déclaration de l’ACL “trusted”
    • C. Bloc “options” : configuration globale de BIND
  • IV. Configuration des zones DNS
  • V. Fichiers de zone
  • VI. La différence entre une zone directe et une zone inversée
  • VII. Synchronisation des serveurs secondaires
    • A. Préparation des serveurs secondaires
    • B. Déclaration des zones en mode slave
    • C. Vérifier la syntaxe de la configuration
    • D. Redémarrage du service
    • E. Recharger la configuration de BIND en production
  • VIII. Vérification de la synchronisation
    • A. Résolution d’un nom interne depuis les serveurs DNS :
    • B. Résolution de noms externes depuis la machine cliente
    • C. Vérifier la présence des fichiers de zone sur les serveurs secondaires
    • D. Tester la résolution inverse
    • E. Journaux système
  • IX. Conclusion

I. Présentation

Dans cet article, nous allons voir comment déployer une infrastructure DNS en haute disponibilité avec BIND9. L'objectif est de garantir la résolution des noms de domaine même en cas de panne d'un ou plusieurs serveurs.

Nous utiliserons trois serveurs Ubuntu 24.04, chacun positionné sur un réseau différent avec routage inter-sites (niveau 3). Mais, vous pouvez aussi utiliser trois serveurs DNS sur le même site.

Cette configuration permet :

  • Une résolution DNS répartie et tolérante aux pannes
  • Une synchronisation automatique des zones DNS entre un serveur maître et des serveurs secondaires

Prérequis :

  • Trois serveurs Ubuntu 24.04 ou Debian
  • Droits sudo/root sur les serveurs
  • Connexions réseau entre les nœuds (niveau 3)

A. Principe de fonctionnement

Avant de commencer, sachez que cette architecture repose sur l’utilisation d’un serveur maître (ou primary) et de serveurs esclaves (ou secondary). Cela signifie que :

  • Le serveur maître détient les fichiers de zone originaux. Toutes les modifications DNS (ajout, suppression, mise à jour d'enregistrements) sont réalisées uniquement sur ce serveur.
  • Les serveurs esclaves, quant à eux, ne possèdent pas ces fichiers directement. Ils se synchronisent automatiquement avec le serveur maître pour en récupérer une copie à jour.

Ce fonctionnement présente plusieurs avantages :

  • Il permet de répartir les requêtes DNS entre plusieurs serveurs, améliorant ainsi la disponibilité du service.
  • Il garantit une continuité de service, même si le serveur maître devient momentanément indisponible.
  • Il centralise les modifications DNS, ce qui simplifie la gestion et limite les erreurs.

Nous allons commencer par effectuer la configuration du serveur maître, puis, dans un second temps, nous verrons comment configurer les serveurs secondaires.

Nous allons également définir les fichiers de zone DNS pour un domaine fictif « example.com », ainsi que trois zones de recherche inversée. Ces zones inverses sont nécessaires, car nos serveurs DNS sont répartis sur trois réseaux différents.

B. Schéma logique

Commençons par une présentation de l'environnement.

MachineInterfaceAdresse IPRéseauRôlePasserelle
ClientPort 410.10.10.100/2410.10.10.0/24Client/Test10.10.10.1
NS1Port 310.10.10.10/2410.10.10.0/24Serveur DNS principal (maître)10.10.10.1
NS2Port 2192.168.1.10/24192.168.1.0/24Serveur DNS secondaire192.168.1.1
NS3Port 1192.168.30.10/24192.168.30.0/24Serveur DNS secondaire192.168.30.1

II. Installation de BIND9

Sur chacun des trois serveurs, exécutez cet enchainement de commandes pour mettre à jour le cache des paquets et installer le serveur bind9 :

sudo apt update && sudo apt install bind9 bind9-utils

A. Présentation des fichiers BIND par défaut

Lorsque BIND9 est installé, plusieurs fichiers sont créés automatiquement dans le répertoire /etc/bind/. Voici une présentation des fichiers les plus courants et leur utilité :

named.conf

Fichier principal de configuration. Il inclut les autres fichiers de configuration (via des directives include). Il ne contient généralement pas de directives directement.

named.conf.options

C’es...
[Courte citation de 8% de l'article original]

Loading...