15

Ce tutoriel s’adresse aux personnes souhaitant configurer un serveur DNS Bind9 sous Linux.

Il détaille également comment déclarer et gérer ses domaines dans le manager d’OVH.

Il s’appuie sur un cas concret rencontré lors de la configuration du domaine idneo.fr sur un serveur kimsufi tournant sous ubuntu mais pourra être facilement adapté aux autres distributions linux.

Configuration du serveur

  • Ubuntu 9.10
  • Bind 9.6
  • Adresse ip : 91.121.172.143
  • Nom : ks362230.kimsufi.com

Introduction sur le DNS

Tous les ordinateurs connectés à un réseau possèdent une adresse IP permettant leur identification et la communication entre les machines (exemple d’adresse au format IPv4 : 91.121.172.143).
Ces identifiants numériques sont très facilement manipulables par les ordinateurs mais difficilement mémorisable pour les utilisateurs. C’est pourquoi avec le développement des réseaux est rapidement né la nécessité de pouvoir accéder à une machine par un identifiant alphanumérique facilement mémorisable plutôt que par une adresse IP. Pour répondre à cette problématique, le système des noms de domaine a été mis en place ainsi que des services permettant de convertir les noms de domaines manipulés par les utilisateurs en adresses IP manipulables par les ordinateurs.

Le Domain Name System (DNS) est le service assurant actuellement cette tâche.
Il a fait sont apparition en 1983 en remplacement d’un système de résolution par l’intermédiaire d’un fichier texte centralisé HOSTS.TXT maintenu par le Network Information Center. Le DNS est un système réparti, composé de centaines de milliers de serveur à travers le monde, permettant de résoudre les noms de domaine en IP et inversement de déterminer quels noms de domaines sont associés à une IP.

Les deux type de serveur DNS qui nous intéressent sont :

  • Serveur DNS primaire : chargé de la résolution des noms et de la résolution inverse
  • Serveur DNS secondaire : seconde le DNS primaire en cas de défaillance

Il existe également des serveurs DNS cache qui conservent en mémoire la réponse des résolutions de nom afin d’améliorer le temps de réponse du système.

La partie culturelle du tutoriel est terminée on va pouvoir passer aux choses sérieuses !

Déclaration du domaine sur le DNS secondaire d’OVH

On se connecte au manager d’ovh, on sélectionne le serveur dédié et on accède à la section DNS secondaire :

Serveur dédié -> Services -> Gestion DNS -> DNS secondaire

Accès à l'ajout de nouveaux domaine sur le DNS d'ovh

Accès à la déclaration du domaine sur le DNS d'ovh

On demande le prise en charge de notre domaine pour le dns secondaire d’Ovh.

Important : Il faut ajouter le nom de domaine seul. Il ne doit pas être précédé de « www » ou tout autre préfixe.

Inscription du domaine sur le DNS d'ovh

Inscription du domaine sur le DNS d'ovh

Avant de quitter le manager, on relève le Nom d’host secondaire qui sera nécessaire pour la configuration de Bind9.

Configuration de Bind9

Déclaration des zones dans /etc/bind/named.conf

On édite le fichier /etc/bind/named.conf et l’on y ajoute les deux zones qui vont être utilisées par le domaine.

Zone assurant la résolution de domaine

Cette zone assure la traduction  du nom de domaine en adresse IP.

zone "idneo.fr" {
  type master;
  file "/etc/bind/db.idneo.fr";
  allow-transfer {213.186.33.199;};
};

Zone de reverse

Elle assure l’opération inverse en permettant de retrouver un domaine à partir d’une adresse IP.
Le nom de la zone est constitué de l’adresse IP  du serveur prise en sens inverse à laquelle on ajoute « .in-addr.arpa ».

Dans notre cas, l’adresse du serveur est 91.121.172.143, on devra donc définir la zone de la manière suivante :

zone "143.172.121.91.in-addr.arpa" {
  type master;
  file "/etc/bind/143.172.121.91.in-addr.arpa";
  allow-transfer {213.186.33.199;};
  notify no;
};

Explications complémentaires

type master : Précise que cette configuration est celle du serveur primaire.
file : Adresse du fichier de zone.
allow-transfer : Adresse IP autorisée à copier le fichier de zone.

Création des fichiers de zone

On crée à présent les fichiers détaillant les deux zones déclarées précédemment.

/etc/bind/db.idneo.fr

$TTL 12H
$ORIGIN idneo.fr.
@          IN              SOA             ks362230.kimsufi.com. postmaster.idneo.fr. (
           2010080801      ; Serial
           8H              ; Refresh
           30M             ; Retry
           4W              ; Expire
           8H              ; Minimum TTL
)
           IN              NS              ks362230.kimsufi.com.
           IN              NS              ns.kimsufi.com.
           IN              MX      10      mail.idneo.fr.
idneo.fr.  IN              A 91.121.172.143
ns         IN              A 91.121.172.143
mail       IN              A 91.121.172.143
www        IN              CNAME           idneo.fr.
ftp        IN              CNAME           idneo.fr.

/etc/bind/143.172.121.91.in-addr.arpa

$TTL 12H
@          IN              SOA             ks362230.kimsufi.com. postmaster.idneo.fr. (
           2010080801 ; Serial
           8H              ; Refresh
           30M             ; Retry
           4W              ; Expire
           8H              ; Minimum TTL
)
           IN NS   ks362230.kimsufi.com.
           IN NS   ns.kimsufi.com.
           IN PTR  idneo.fr.

Explications complémentaires

$TTL (Time To Live) : Définit la durée pendant laquelle l’enregistrement sera conservé par les DNS cache.
$ORIGIN : Le nom du domaine.
Détail du SOA :

  • ks362230.kimsufi.com. : Nom pleinement qualifié du serveur de nom.
  • postmaster.idneo.fr. : Adresse mail de l’administrateur du domaine (l’arobase de l’adresse est remplacée par un . ).
  • Serial : Numéro de série permettant au serveur secondaire de savoir si il doit se mettre à jour. Il doit dont être incrémenté à chaque modification du fichier. Son écriture est libre mais par convention il est généralement composé de la manière suivante : yyyymmdd + numéro de la modification. Dans notre cas, il s’agit de la première modification du 8 août 2010.
  • Refresh : Fréquence à laquelle le serveur secondaire vient consulter le serveur primaire.
  • Retry : Délai au bout duquel il retente de consulter le serveur primaire si il n’a pas répondu lors du refresh.
  • Expire : Durée après laquelle il considérera que le serveur primaire a été retiré du service.
  • Minimum TTL : Durée de vie minimum du cache.

NS : Noms des serveurs de nom gérant le domaine (la deuxième ligne correspond au « Nom d’host secondaire » que l’on a relevé dans le manager d’ovh) .
MX : Adresse des relais pour le courrier électronique.
A : Enregistrement associant un nom à une adresse IP.
CNAME : Alias renvoyant le nom à droite vers le serveur inscrit à gauche (très utile pour les hôtes virtuels).
PTR : Précise les zones gérées par cette IP.

Important : La présence ou l’absence des ‘.‘ derrière les noms permet à bind de savoir si il s’agit de nom complet ou non.
Par exemple  idneo.fr. sera laissé comme tel alors que mail sera compris comme mail.idneo.fr.

Tests de la configuration

Avant  de charger les nouvelles zones, on s’assure qu’elles sont correctes.

Test de named.conf

$ named-checkconf /etc/bind/named.conf

Si aucun message d’erreur n’apparait c’est que tout fonctionne.

Test des fichiers de zone

$ named-checkzone idneo.fr db.idneo.fr
zone idneo.fr/IN: loaded serial 2010080801
OK
$ named-checkzone idneo.fr 143.172.121.91.in-addr.arpa
zone idneo.fr/IN: loaded serial 2010080801
OK

Notre configuration fonctionne, on peut forcer bind à la prendre en compte.

/etc/init.d/bind9 reload

Tests du serveur DNS

On teste à présent si notre serveur DNS répond correctement aux demandes depuis l’extérieur.
Grâce à la commande nslookup (disponible dans le paquet dnsutils) on commence par tester si la résolution de domaine fonctionne.

$ nslookup idneo.fr. ks362230.kimsufi.com
Server:         ks362230.kimsufi.com
Address:        91.121.172.143#53
Name:   idneo.fr
Address: 91.121.172.143

Tout fonctionne, on peut à présent tester la résolution inverse

$ nslookup 91.121.172.143 ks362230.kimsufi.com
Server:         ks362230.kimsufi.com
Address:        91.121.172.143#53
143.172.121.91.in-addr.arpa      name = idneo.fr.

On teste à présent le serveur secondaire afin de s’assurer qu’il a bien copié le fichier de résolution de domaine.
Pour cela on peut utiliser la première fonction nslookup en remplaçant  ks362230.kimsufi.com par le nom d’host secondaire (ici ns.kimsufi.com). On peut également utiliser la commande dig qui nous fourni une multitude d’informations très utiles et notamment des informations sur les serveurs de nom gérant notre domaine.

$ dig idneo.fr +nssearch
SOA ks362230.kimsufi.com. postmaster.idneo.fr. 2010080801 [...] from server ks362230.kimsufi.com in 37 ms.
SOA ks362230.kimsufi.com. postmaster.idneo.fr. 2010080801 [...] from server ns.kimsufi.com in 33 ms.

On voit que deux serveurs de nom gèrent notre domaine et qu’ils ont tout les deux la version 2010080801 du fichier de zone.

Important : Si le serveur secondaire ne répond pas, c’est qu’il n’a pas encore chargé vos fichiers de zone. Il faudra attendre que cela soit fait pour continuer le tuto.

Si il répond, on s’assure que notre configuration est valide grâce au zonecheck disponible sur le site de l’afnic.

Test du domaine idneo.fr avec Zonecheck

Test du domaine idneo.fr avec Zonecheck

Si le test passe, on va pouvoir modifier nos DNS depuis le manager d’OVH.

Modification des DNS du domaine depuis le manager d’OVH

On retourne dans le manager d’OVH et on sélectionne le domaine idneo.fr, puis on accède à la section Serveur DNS

:
Mutualisé -> Dommaine & DNS -> Nom de domaine -> Serveurs DNS

Accès à la gestion des DNS de idneo.fr dans la manager d'OVH

Accès à la gestion des DNS de idneo.fr dans la manager d'OVH

On accède à la section modification et l’on renseigne nos nouveaux paramètres.

Modification des DNS

Modification des DNS

Il ne reste plus qu’à valider les changements et attendre que les modifications soient prises en compte.

Bonne configuration à tous !

[Photo]

Dernières recherches pour cet article:

  • dns linux
  • serveur dns linux
  • zone bind configure
  • configurer un dns avec bind9
  • configuration dns sous linux
  • configuration de dns sous linux
  • serveur dns sous linux
  • configuration dun serveur DNS sous Linux
  • configuration dns linux
  • configurer dns linux

15 Commentaires

  1. davlefou dit :

    Bonjour,
    es ce qu’il faut faire la reverse sur le serveur? Es également le cas pour les ip fail over?

  2. davlefou dit :

    Bonjour,
    merci pour ce beau tutorial, es ce qu’il nécéssaire de faire la reverse sur le serveur? Es le même traitement pour les ip failover? Comment organise ton le basculement d’un serveur à l’autre? En particulier au niveau du Bind et de la propagation des dns!!!

  3. Yassine dit :

    Merci énormément pour ce tuto. :)

  4. fanfarlo dit :

    Un grand bravo pour ce tuto très clair et efficace !

    Merci

  5. vivi dit :

    Merci pour le tuto. Installation nickel et du 1er coup sans soucis en suivant pas à pas le tuto.
    Par contre, comment faire pour ajouter des sous-domaines ?

    • idneo dit :

      Pour un sous domaine il suffit d’ajouter un enregistrement A dans ton fichier de zone.

      Dans l’exemple du dessus, j’ai par exemple rajouté dans le fichier /etc/bind/db.idneo.fr :
      blog.idneo.fr. IN A 91.121.172.143

      Il faudra ensuite créer un VirtualHost dans apache pour faire pointer se sous domaine vers le bon DocumentRoot.

  6. meschac dit :

    j’aime avoir les documents sur les configurations des serveurs avec les systemes d’exploitation libre

  7. desbass dit :

    bonjour,
    je ne comprend pas j’ai tout bien mis en place est au mome du test:
    Test des fichiers de zone

    $ named-checkzone idneo.fr db.idneo.fr

    je recois:

    zone idneo.fr/IN: loading from master file db.idneo.fr failed: file not found

    zone idneo.fr/IN: not loaded due to errors.

    $ named-checkzone idneo.fr 143.172.121.91.in-addr.arpa

    je recois:

    zone idneo.fr/IN: loading from master file db.idneo.fr failed: file not found

    zone idneo.fr/IN: loading from master file db.idneo.fr failed: file not found

    zone idneo.fr/IN: not loaded due to errors.

    une idée? merci d’avance

  8. Pierre dit :

    Bonjour,

    Je suis resté bloqué un bon moment à l’étape Tests du serveur DNS. nslookup me renvoyait systématiquement « ;; connection timed out; no servers could be reached »
    Pour m’en sortir, j’ai mis en commentaire la ligne 127.0.0.1; (localhost) du fichier /etc/bind/named.conf.options :
    listen-on port 53 {
    127.0.0.1;
    };

    Je n’ai pas encore terminé de faire cette config de DNS, mais pour l’instant, votre tuto est ce que j’ai trouvé de plus utile sur le net.

    Merci bcp,
    Pierre

  9. Edgar dit :

    Salut et merci pour ce tuto enrichissant.
    J’ai tout de même une question : est-il important de configurer la zone de reverse ? ou plutôt quand est-il util de configurer la zone reverse?
    Merci par avance

    • idneo dit :

      La mise en place du DNS Reverse permet de retrouver un domaine à partir d’une adresse IP.
      Cette fonctionnalité peut être nécessaire pour plusieurs programme et sont absence pourrait provoquer des erreurs. Mais elle est surtout indispensable pour les serveurs envoyant des mails car la plus part des mails envoyés depuis une IP n’ayant pas de reverse sont rejetés.

      • Edgar dit :

        Merci bien c’est assez clair. j’ai en effet plusieurs domaines sur une meme ip et un seul des domaines servira pour un mail server. je configurerai donc son reverse.

Laisser un commentaire