Ce tutoriel est la suite du celui sur l’installation et la configuration de BIND et l’installation et la configuration d’un serveur esclave, que je vous invite à lire si ce n’est pas encore fait. Il explique comment créer une sous-zone sur un serveur BIND.

Pour des grands domaines, il peut être utile de mettre en place plusieurs serveurs DNS, chacun gérant sa zone correspondant à son sous-domaine. Pour cela le serveur maître va déléguer la gestion des sous-zones à d’autres serveurs (qui seront donc maîtres des la sous-zones).

Nous reprendrons du FQDN ns.exemple.com des tutoriaux précédents.

Toutes les manipulations à venir seront à effectuer en tant que super-utilisateur de la machine.


Créer une zone sur le serveur maître

Cette partie sera à faire sur le serveur maître.

Nous devons configurer le serveur maître pour qu’il délègue la gestion de la sous-zone à un autre serveur.

Pour l’exemple, le serveur maître déléguera la gestion d’une sous-zone au serveur esclave que nous avons créé dans le tutoriel sur celui-ciSi vous n’avez pas suivi ce tutoriel, vous pouvez le faire maintenant ou tout simplement installer BIND sur une nouvelle machine (Debian 7.7.0 de préférence) :

apt-get update -y && apt-get upgrade -y
apt-get install bind9 dnsutils bind9-doc

Rappelons également que la zone principale permet de faire pointer un nom de domaine pleinement qualifié autrement appelé FQDN (Full Qualified Domain Name)  sur une adresse IP. Un FQDN est de la forme hote.domaine.extension :

  • hote correspond au nom de machine à résoudre ;
  • domaine correspond au nom de domaine ;
  • extension correspond à l’extension (.com par exemple).

Dans le cas d’une sous-zone, le format du FQDN sera hote.sous-domaine.domaine.extension. sous-domaine correspond au nom de la sous-zone que nous allons créer et qui se nommera tutofacile ici.

Le FQDN sera donc ns2.tutofacile.exemple.com.

Le nom d’hôte de la sous-zone ne doit pas être ns comme pour la zone principale. Le standard est de donné un nom de type nsX (X correspond au numéro de la sous-zone).

Nous commencerons par créer la sous-zone dans le fichier named.conf.local qui, pour rappel, contient la configuration locale du serveur DNS.

Éditez le fichier named.conf.local :

nano /etc/bind/named.conf.local

Ajoutez les lignes suivantes :

zone "tutofacile.exemple.com." {
     type delegation-only;
}; 

L’option type a la valeur delegation-only pour indiquer que l’on délègue la gestion de la zone à un autre serveur.

Enregistrez les modifications ;

Éditez le fichier de description de votre zone principale :

nano /etc/bind/exemple.com

Ajoutez les lignes suivantes :

tutofacile      IN      NS      ns2.tutofacile.exemple.com.
ns2     IN      A       IPServeurMaître

IPServeurMaître correspond à l’adresse IP du serveur qui sera le maître de la sous-zone ;

Enregistrez les modifications ;

Éditez le fichier named.conf.options :

nano /etc/bind/named.conf.options

Pour rappel, le fichier named.conf.options contient l’ensemble des options de configuration du serveur DNS et est situé dans le répertoire /etc/bind/.

Renseignez dans le forwarders (qui contient les adresses IP des zones) l’adresse IP du serveur qui sera le maître de la sous-zone ;

Enregistrez les modifications ;

Redémarrez le service bind9 :

service bind9 restart

Testez la résolution de nom du sous-domaine :

dig @127.0.0.1 ns2.exemple.com 

Le serveur maître doit vous retourner l’adresse IP du serveur maître du sous-domaine :

;; QUESTION SECTION:
;ns2.exemple.com.               IN      A

;; ANSWER SECTION:
ns2.exemple.com.        604800  IN      A       192.168.1.253

;; AUTHORITY SECTION:
exemple.com.            604800  IN      NS      ns.exemple.com.

;; ADDITIONAL SECTION:
ns.exemple.com.         604800  IN      A       192.168.1.254

Configurer la sous-zone

Le reste du tutoriel se fera sur le serveur maître de la sous-zone.

Créer la sous-zone

Éditez le fichier named.conf.local :

 nano /etc/bind/named.conf.local

Éditez le fichier de description que vous venez de créer :

zone "tutofacile.exemple.com." {
     type master;
     file "/etc/bind/tutofacile.exemple.com";
}; 

Enregistrez les modifications ;

Créer le fichier de description de la sous-zone

Créez le fichier de description de votre sous-zone, en faisant une copie du fichier db.local fourni par BIND :

cp /etc/bind/db.local /etc/bind/tutofacile.exemple.com

Éditez le fichier de description que vous venez de créer :

nano /etc/bind/tutofacile.exemple.com

Adaptez-le de la manière suivante :

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns2.tutofacile.exemple.com. email@exemple.com. (
                       10042017         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns2.tutofacile.exemple.com.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1
ns2     IN      A       IPServeurMaître

Enregistrez les modifications ;

Redémarrez le service bind9 :

service bind9 restart

Testez la résolution de nom :

dig @127.0.0.1 ns2.tutofacile.exemple.com

Le serveur doit vous retourner son adresse IP :

;; QUESTION SECTION:
;ns2.tutofacile.exemple.com.    IN      A

;; ANSWER SECTION:
ns2.tutofacile.exemple.com. 604800 IN   A       192.168.1.253

;; AUTHORITY SECTION:
tutofacile.exemple.com. 604800  IN      NS      ns2.tutofacile.exemple.com.

Pour configurer des hôtes, je vous invité à le tutoriel sur l’installation et la configuration de BIND dans la partie Définir des hôtes.


Ce tutoriel est terminé. Vous pouvez continuer la configuration de votre serveur BIND en configurant une zone reverse si ce n’est pas encore fait ou éventuellement en créant un serveur esclave.

Si vous avez des problèmes, où que vous trouvez que certains points sont mal expliqués (ou faux), n’hésitez pas à m’avertir.