Vous êtes ici : Accueil > Administration réseaux > BIND9 : installation et paramétrage

BIND9 : installation et paramétrage

bind9

Dans cet article, nous allons voir comment installer et configurer un serveur DNS en utilisant l'application BIND9. Je supposerais que vous possédez un réseaul local fonctionnel et que vous connaissez les bases de TCP/IP (adressage, masque de sous-réseaux...).

INTRODUCTION :

Sur internet, toutes les machines sont identifiées (et identifiables) par leur adresse IP. Néanmoins, il n'est pas donner à tout le monde de retenir l'adresse IP de google ou de sa banque.

C'est pour cela qu'ont été créés les noms de domaine. Ces derniers permettent d'identifier un réseau. Si on ajoute le nom de la machine au nom de domaine au obtient le nom de l'hôte. Par exemple, cette page se trouve sur une machine qui appartient à un domaine. Si vous regarder  l'adresse en haut de votre navigateur, il y aura marqué : http://www.ced-info.com. La machine se nomme www et le domaine est ced-info.com.

Lorsque vous introduisez ce nom d'hôte, il est converti en adresse IP afin de pouvoir demander cette page au travers du protocole http.

L'acronyme DNS signifie Domain Name System; en français, système de nom de domaine.

Donc, quand votre machine (à la maison ou au bureau) demande le serveur www.ced-info.com, il s'adresse tout d'abord aux DNS mondiaux pour savoir quelle est la machine qui gère les noms sur le domaine ced-info.com. Imaginons que cette machine se nomme ns.com.

Lorsque votre machine sait que ns.com gère le nom de domaine ns.com,  elle interroge le serveur de nom ns pour obtenir l'IP de www.ced-info.com qui se trouve sur son domaine. A ce moment-là, ns.com répond que la machine ns.com porte l'adresse IP 82.165.67.16 .

Voilà le fonctionnement d'un DNS sans entrer dans les détails.

Pour installer notre serveur DNS, nous allons utiliser l'application BIND.

INSTALLATION DE BIND :

Pour installer BIND, rien de plus simple il suffit de taper dans un terminal :

sudo apt-get install bind9

CONFIGURATION DE BIND :

Nous allons considérer les aspects suivants :

  • Le réseau local est en 192.168.0.* et se nomme bureau.local
  • Le serveur DNS se nomme dns, son adresse IP est 192.168.0.2
  • Le serveur de mail se nomme mail, son adresse IP est 192.168.0.3
  • Sur le réseau se trouve 3 autres machines poste1(192.168.0.10), poste2(192.168.0.11), poste3(192.168.0.12)

Remarque : L'utilisation du TLD (Top Level Domain) fictif .lan est voulue. En effet, n'utilisez pas un TLD existant comme .com ou .ca sans en être le propriétaire.

CONFIGURATION DE BASE DU SERVEUR :

La configuration principale de BIND s'effectue à l'aide du fichier /etc/bind/named.conf.

L'ajout de vos propres zones est possible via le fichier /etc/bind/named.conf.local.

Dans ce fichier, on définit un certains nombre de zones. Une zone correspond, soit à une plage d'adresses IP soit à un nom de dommaine. Ici, les zones qui nous intéressent sont 192.168.0.* et bureau.local. Le fait de définir ces deux zones qui correspondent à la plage IP permet d'effectuer la correspondance IP<->nom d'hôte dans les deux sens. Cela veut dire que l'on pourra obtenir une IP en fonction du nom d'hôte mais aussi un nom d'hôte à partir d'une IP.

Une zone avec un nom de domaine se définie comme ceci :

zone "bureau.local" {
        type master;
        file "/etc/bind/db.bureau.local";
};

Attention à ne pas oublier le ";" à la fin !

Nous allons maintenant passer à la zone inverse qui ce présente comme ceci :

zone "0.168.192.in-addr.arpa" {
         type master;
         file "/etc/bind/db.0.168.192";
};

Nous en avons fini avec la configuration générale de BIND. Nous allons maintenant, voir comment définir le nom des machines présentes dans une zone.

LES FICHIERS DE ZONE :

Nous avons un fichier de zone par zone. Ce fichier sert à faire la traduction entre l'adresse IP d'une machine et son nom.
Voici le fichier complet /etc/bind/db.bureau.local

$TTL 3h
@       IN      SOA     dns.bureau.local. admin.bureau.local. (
                                2009080201
                                8H
                                2H
                                1W
                                1D )

@       IN      NS      dns.bureau.local.

@       IN      MX      10      mail.bureau.local.

dns       A       192.168.0.2
mail      A       192.168.0.3
poste1    A       192.168.0.10
poste2    A       192.168.0.11
poste3    A       192.168.0.12

EXPLICATION DU FICHIER :

$TTL 3h
@       IN      SOA     dns.bureau.local. admin.bureau.local.  (
                                2009080201
                                8H
                                2H
                                1W
                                1D )

Ce champ est appelé champ SOA (Start Of Authority). Ce champ SOA permet de décrire le serveur de nom ayant autorité sur la zone, ainsi que l'adresse électronique du contact technique (dont le caractère "@" est remplacé par un point).

Ce point est indispensable ! ! !
Les valeurs qui suivent correspondent respectivement au :

  • au numéro de série (souvent on met la date courante suivie d'un numéro d'ordre); AAAAMMJJxx.
  • au temps de rafraichissement (refresh; ici, 8 heures); la valeur recommandée est de 24 heures.
  • au temps entre deux essais (retry; ici, 2 heures); la valeur recommandée est de 2 heures.
  • au temps d'expiration (expire; ici, 1 semaine); la valeur recommandée est de 1000 heures.
  • au valeur TTL minimum (minimum; ici, 1 jour); la valeur recommandée est de 2 jours.
@       IN      MX      10      mail.bureau.local.

Ce champ permet d'indiquer au serveur DNS le serveur de mail afin qu'il gère les adresses qui ont une extension @bureau.local.

Nous allons voir comment configurer le fichier de zone inverse /etc/bind/db.0.168.192. Ce fichier doit être rempli de la manière suivante :

$TTL 3h
@       IN      SOA     dns.bureau.local. admin.bureau.local. (
                                2009080201
                                8H
                                2H
                                1W
                                1D )

@       IN      NS      dns.bureau.local.

@       IN      MX      10      mail.bureau.local.

$ORIGIN 0.168.192.in-addr.arpa.
2       IN      PTR     dns.bureau.local.
3       IN      PTR     mail.bureau.local.
10      IN      PTR     poste1.bureau.local.
11      IN      PTR     poste2.bureau.local.
12      IN      PTR     poste3.bureau.local.

Toute la première partie, est identique au fichier /etc/bind/db.bureau.local.

La partie qui change est celle-ci :

$ORIGIN 0.168.192.in-addr.arpa.
2       IN      PTR     dns.bureau.local.
3       IN      PTR     mail.bureau.local.
10      IN      PTR     poste1.bureau.local.
11      IN      PTR     poste2.bureau.local.
12      IN      PTR     poste3.bureau.local.

Le principe de cette partie est identique à celle contenue dans le fichier /etc/bind/db.bureau.local. Mais celle-ci fait la traduction à partir de l'adresse IP et retourne le nom d'hôte. En effet, prenons les lignes :

$ORIGIN 0.168.192.in-addr.arpa.
2       IN      PTR     dns.bureau.local.

La première ligne : $ORIGIN 0.168.192.in-addr.arpa. sert à définir la zone inverse qui va être renseignée. La deuxième ligne : 2 IN PTR dns.bureau.local.est constituéede la manière suivante :

  • 2 : c'est la fin de l'adresse IP (192.168.0.2)
  • IN : indique que l'on à affaire à une zone internet
  • PTR : indique que le chiffre en début de ligne se placera à la fin de l'adresse IP (ici : 2 -> 192.168.0.2)
  • dns.bureau.local. : nom complet de l'hôte correspondant à l'adresse IP

VÉRIFICATION DE LA CONFIGURATION :

La configuration de BIND étant terminée. Nous allons passer à la vérification des fichiers de configurations. Dans un premier temps, nous allons utiliser le programme named-checkconf qui sert à vérifier la syntaxe du fichier /etc/bind/named.conf.

Pour connaitre la version de named-checkconf entrez cette commande dans un terminal :
named-checkconf -v

Pour vérifier le fichier named.conf, entrez la commande suivante:
named-checkconf /etc/bind/named.conf

Nous allons maintenant passer à la vérifications des fichiers de zone. Pour cela, utilisez la commande suivante :

named-checkzone nom_fichier_de_zone

Nous pouvons dès à présent recharger la configuration de BIND avec la commande suivante :
sudo /etc/init.d/bind9 reload

Nous pouvons maintenant vérifier que notre configuration fonctionne. Pour cela, nous allons utiliser la commande nslookup. Voici les quelques test effectués chez moi :

ced@pc-ced:~$ nslookup
> poste1.bureau.local
Server:		192.168.0.2
Address:	192.168.0.2#53

Name:	poste1.bureau.local
Address: 192.168.0.10

>192.168.0.3
Server:		192.168.0.2
Address:	192.168.0.2#53

3.0.168.192.in-addr.arpa	name = mail.bureau.local.
>exit

Voilà normalement votre serveur DNS et fonctionnel. J'espère que cet article est assez clair ! Si ce n'est pas le cas, n'hésitez surtout à faire part de vos remarques en laissant un commentaire.

  • Sammy

    Bonjour. Merci pour ce tutoriel très complet.
    je testerais une fois sur place. car je suis en stage, et on me demande de mettre en place un messagerie interne et un samba ..etc

    j'ai procéder en me basant sur la virtualisation openvz

    donc j'ai plusieurs CT. en voulant mettre chaque service avec son propre adresse .lan je n'arrive absolument pas. je me demande et ce qu'il ya une manipulation a faire du coté routeur ?

    sinon pour mon cas je pourrais changer .local par .lan ? pour avoir l'extension lan. je vous dirai plus, une fois que je teste tout ça.

    merci. ça fait un blog de plus dans mes bookmarks 😉

  • ced

    Bonjour à toi Sammy,
    Je ne penses pas qu'il y ait de manipulations au niveau du routeur (à part peut-être du routage), mais comme je ne connais pas la configuration de ton réseau je ne peux pas t'en dire plus. Regardes bien si tes pointeurs sont OK!
    Sinon pour changer le .local en .lan, tu peux le faire, bien sûr, cela ne pose aucun soucis!

    Cordialement ced