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
Créer les fichiers de configuration nécessaires
Créez le répertoire
/opt/bind9/config/et placez-y les fichiers de configurationnamed.confethomelab-com.zone.Fichier
named.confCréez un fichier
/opt/bind9/config/named.confavec 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; };
};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
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
Démarrer Bind9
Dans le répertoire où se trouve votre fichier docker-compose.yml, exécutez:
docker-compose up -dConfiguration
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/cachemonté sur/var/cache/bind/opt/bind9/recordsmonté 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
