Page cover

Bind9

Bind9 (Berkeley Internet Name Domain version 9) est la dernière version de l'un des serveurs DNS les plus populaires et les plus utilisés au monde. Le DNS (Domain Name System) est un système essentiel

Qu'est-ce que Bind9?

Bind9 est une implémentation très répandue du protocole DNS (Domain Name System) qui permet la traduction des noms de domaine en adresses IP et inversement. Il est utilisé pour la gestion des zones DNS et la résolution de noms sur Internet.

Installation

Prérequis

  • Un serveur avec Docker installé.

Étapes d'installation

  1. Créer les fichiers de configuration nécessaires

    Créez le répertoire /opt/bind9/config/ et placez-y les fichiers de configuration named.conf et homelab-com.zone.

  2. Fichier named.conf

    Créez un fichier /opt/bind9/config/named.conf avec le contenu suivant:

# Définition des ACL (Access Control Lists) pour restreindre l'accès aux requêtes DNS
acl docker {
  172.17.0.0/16; # Plage d'adresses IP des conteneurs Docker
};
acl internal {
  192.168.0.0/24; #/ Plage d'adresses IP du réseau interne
};

options {
  # Liste des serveurs DNS à utiliser pour les requêtes que ce serveur ne peut pas résoudre
  forwarders {
    8.8.8.8;
  };
  # Autoriser les requêtes provenant des IP spécifiées dans les ACL
  allow-query { 127.0.0.1; docker; internal; };
};

# Définition de la zone DNS "homelab.com"
zone "homelab.com" IN {
  type master;
  # Fichier contenant les enregistrements DNS pour cette zone
  file "/etc/bind/homelab-com.zone";
  #update-policy { grant tsig-key zonesub any; };
};
  1. Fichier homelab-com.zone

Créez un fichier /opt/bind9/config/homelab-com.zone avec le contenu suivant:

$ORIGIN homelab.com. ; base domain-name
$TTL 86400      ; 1 d
@               IN      SOA     ns.homelab.com. root.homelab.com. (
                        2007091701 ; serial
                        3600      ; refresh
                        3600       ; retry
                        2419200     ; expire
                        3600      ; minimum
                        )
; name server RR for the domain
                IN      NS      ns.homelab.com.
; other IP addresses can be added as required
ns              IN      A       192.168.0.1
; -- add docker services
traefik         IN      A       192.168.0.2
  1. Fichier docker-compose.yml

Créez un fichier docker-compose.yml avec le contenu suivant:

version: '3.7'

services:
  bind9:
    container_name: dns-prod 
    image: ubuntu/bind9:latest
    environment:
      - BIND9_USER=root # Utilisateur sous lequel Bind9 s'exécute
      - TZ=Europe/Paris # Fuseau horaire
    ports:
      - "53:53/tcp"
      - "53:53/udp"
    volumes:
      - /opt/bind9/config/:/etc/bind:rw # Montage du dossier de configuration
      - /opt/bind9/cache:/var/cache/bind # Montage du dossier de cache
      - /opt/bind9/records:/var/lib/bind # Montage du dossier des enregistrements
    network_mode: host
    restart: unless-stopped
    labels:
      - com.centurylinklabs.watchtower.enable=true # Activer Watchtower pour les mises à jour automatiques
  1. Démarrer Bind9

Dans le répertoire où se trouve votre fichier docker-compose.yml, exécutez:

docker-compose up -d

Configuration

Configuration des fichiers

Les fichiers de configuration principaux pour Bind9 sont named.conf et homelab-com.zone.

  • named.conf: Ce fichier définit les ACL (Access Control Lists) pour autoriser les requêtes DNS, les options de forwarding et la zone DNS "homelab.com".

  • homelab-com.zone: Ce fichier contient les enregistrements DNS pour le domaine "homelab.com", y compris le serveur de noms et les enregistrements A pour les services Docker.

Configuration des volumes

Les volumes sont montés dans le conteneur pour persister les configurations et les données de cache. Les chemins montés sont:

  • /opt/bind9/config/ monté sur /etc/bind

  • /opt/bind9/cache monté sur /var/cache/bind

  • /opt/bind9/records monté sur /var/lib/bind

Utilisation

Bind9 est maintenant configuré et opérationnel sur votre serveur. Le service DNS résoudra les noms de domaine définis dans votre fichier de zone, notamment "traefik.homelab.com" pointant vers 192.168.0.2.

Conclusion

En suivant cette documentation, vous devriez être en mesure d'installer et de configurer Bind9 sur votre serveur en utilisant Docker. Bind9 offre une solution robuste et flexible pour la gestion des zones DNS et la résolution de noms de domaine dans vos environnements réseau.

Mis à jour