1.1 Infrastructure DNS - gpk659/WoodyToys-Projet-VPS GitHub Wiki

Introduction

Le service DNS (Domain Name Service) est un service TCP/IP permettant la correspondance entre un nom de domaine qualifié (FQDN : Fully Qualified Domain Name) et une adresse IP, par exemple www.wt5.ephec-ti.be = 151.80.119.132. Ainsi, grâce au DNS, il n'est pas nécessaire de se souvenir des adresses IP.

Ce guide est permet la configuration et la maintenance d'un serveur DNS BIND9 dans un container Docker.

Installation

Pour cette mission, nous avons choisi l'image suivante :

sameersbn/bind/

Ce dockerfile crée un container DNS Bind9 et met en place une interface web via WebMin facilitant sa configuration.

On construit donc l'image de Bind disponibles sur Dockerhub.

sudo docker pull sameersbn/bind 

On lance ensuite la commande run afin de lancer le container. Dans les options de la commander run, il est nécéssaire d'ouvrir les ports nécessaires au fonctionnement de Bind, 53 tcp et udp, ainsi que le port 10000 pour la configuration via WebMin. Il est d'autant plus facile de créer un volume pour modifier les fichiers en interne. Ce qui évite à chaque fois de rentrer de le container docker. Ici on prend tout le fichier data et on le met dans le dossier personnel /home/noe/bind.

 docker run --name bind -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp 
 -v /home/noe/bind/:/data sameersbn/bind:latest

La commande suivante permet de renter dans le container en mode invite de commande

sudo docker exec -ti bind bash 

Configuration

Nous avons décidés de configurer le DNS en ligne de commande et non avec l'interface Web.

Il faut modifier 3 fichiers principaux :

  • named.conf.local
  • named.conf.options
  • db.wt5.ephec-ti.be

1. On édite le fichier named.conf.local pour y ajouter une zone et faire de BIND9 un serveur maître.

zone "wt5.ephec-ti.be"{ 
 type master; 
 file "/var/lib/bind/wt5.ephec-ti.be.hosts"; 
}; 

2. On édite le fichier named.conf.options. On y ajoute l'adresse DNS de google pour avoir un forwarder pour l'accès à internet.

forwarders { 8.8.4.4; };

On y ajoute aussi l'option listen-on, ce qui permet de définir l'adresse ip qui sera utilisé en tant que DNS interne à l'entreprise.

listen-on {any;};

3. En dernier lieu on crée le fichier db.wt5.ephec-ti.be.hosts qui ressemble à ceci (à adapter à votre configuration)

 ;
 ; BIND reverse data file for broadcast zone
 ;
 $TTL	604800
 @  	IN	SOA	localhost. root.localhost. (
		      1		; Serial
		 604800		; Refresh
		  86400		; Retry
		2419200		; Expire
		 604800 )	; Negative Cache TTL
 ;
 @  	IN	NS	localhost.

Ne pas oublier d'appliquer les changements :

/etc/init.d/bind9 reload