Articles


  1. PLAN

  1. PLAN
  2. PRESENTATION
  3. INSTALLATION
  4. CONFIGURATION
  5. TESTER VOTRE SERVEUR
  6. LIENS
  1. PRESENTATION

Le Domain Name System (ou DNS, système de nom de domaine) est un service qui permet d'établir une correspondance entre une adresse IP et un nom de domaine.
Ce nom de domaine est composé de plusieurs parties et se lit de droite à gauche.
Par exemple : « www.spiderwork.net. » se lira de la sorte :

  • le « . » de fin représente la racine
  • le « .net » est le domaine de premier niveau (TLD : Top Level Domain)
  • le « .spiderwork » est le nom de domaine à proprement
  • le « www » est le nom de machine qui offre le service. Ce nom dépend de l'administrateur qui choisit comment appeler ses machines.

Dans cet article vous sera présentée l'implémentation Linux appelé « Bind » de ce service, qui représente à elle seule environ 70% des DNS présents sur le web.

  1. INSTALLATION

Comme pour la plupart des logiciels Linux l'installation peut s'effectuer à partir des sources ou depuis les paquetages de votre distribution.
L'installation depuis ces derniers a le mérite d'être simple et rapide, c'est pour cela qu'elle vous sera détaillée ici.
Elle consiste en l'installation de 2 paquetages :

  • bind
  • bind-util

Le premier contient le serveur et le second un ensemble d'outils permettant d'effectuer des requêtes sur celui-ci.
Une fois installé vous pouvez démarrer le serveur via la commande : « named -c /etc/named.conf ».

  1. CONFIGURATION

  • Fichier principal :

Séparé en plusieurs fichiers (named.conf, named.conf.local, named.conf.options) incluse dans le fichier named.conf par la directive « include nomFichier » ou d'un seul tenant le fichier peut être séparé en 2 parties.
La première contenant les directives d'exécution et la seconde contenant les zones.
L'exemple suivant est un fichier d'un seul tenant ou les 2 parties sont explicitement présentées :

//DIRECTIVES D'EXÉCUTIONS

//configuration des log
logging {
    category lame-servers{null;};
    category cname{null;};
}

//options
options {   
    directory « /etc/bind »; //repertoire des fichiers de configuration
    version « SECRET »; //masquer la version de bind   
    forward first; //votre serveur répond le premier
    forwarders {
        212.27.40.240;
        212.27.40.241;
    }
    auth-domain no;
}

//DECLARATION DES ZONES

//les servers root
zone « . » {
    type hint;
    file « /etc/bind/db.root »;
}

//la zone localhost
zone « localhost » {
    type master;
    file « /etc/bind/db.local »;
}

//la zone inverse localhost
zone « 127.in-addr.arpa »{
    type master;
    file « /etc/bind/db.127 »;
}

//la zone inverse réseau
zone « 0.in-addr.arpa » {
    type master;
    file « /etc/bind/db.0 »;
}

//la zone inverse broadcast
zone « 255.in-addr.arpa »{
    type master;
    file « /etc/bind/db.255 »;
}

//la zone de recherche de votre domaine
zone « mondomaine.fr » {
    type master;
    file « /etc/bind/db.mondomaine.fr »;
}

//la zone inverse de votre domaine
zone « 0.168.192.in-addr.arpa » {
    type master;
    file « /etc/bind/db.192.168.0 »;
}

Une fois le fichier de configuration créé il vous faut créer et renseigner l'ensemble des fichiers de zone.

  • Zone directe de recherche

;entête quelconque de fichier
$TTL 86400; tps en seconde au dela duquel les dns tiers ne doivent pas garder les enregistrements de votre zone en cache.(on met 1 journée)

;s'en suit l'enregistrement de début d'autorité (SOA : Start Of Authority)
@ IN SOA ns0.mondomaine.fr admin.mondomaine.fr (

            2010110101; serial, par convention constituée de la date du jour AAAAMMJJ + le nbr de fois dont il a été modifié ce jour-là
            28800; refresh, intervalle de temps en seconde durant lequel le serveur secondaire attend avant de verifier l'enregistrement SOA du serveur DNS primaire
            300; retry, intervalle de temps qu'attendent les serveurs secondaires avant de réessayer une requête vers le serveur primaire si ce dernier n'est pas accessible.
            1209600; expire, c'est l'intervalle de temps en seconde durant lequel les serveurs DNS secondaires attendent avant de rejeter les informations de zones s'ils n'ont pas contacté le serveur DNS primaire.
            86400; Time To Live, duré minimum du TTL d'un enregistrement DNS de la zone.

;declaration d'un serveur de noms(NS) et d'un serveur de mail
@ IN NS ns0.mondomaine.fr;
@ IN MX 10 ns0.mondomaine.fr;

;enregistrement de type A (dns correspondant à l'IP)
@ IN A 192.168.0.1
ns0 IN 1 192.168.0.1

;enregistrement des alias
www IN CNAME ns0
ftp IN CNAME ns0
pop IN CNAME ns0
smtp IN CNAME ns0
mail IN CNAME ns0

  • Zone de recherche inversé

$TTL 86400
@ IN SOA ns0.mondomaine.fr admin.mondomaine.fr (
            2010111001;serial
            604800;refresh
            86400;retry
            2419200;expire
            604800);Negative cache TTL

@ IN NS ns0.mondomaine.fr   
       

 ;le RR (ressource record) PTR permet de définir le nom associé à l'adresse ip
1 IN PTR ns0.mondomaine.fr

  • Détail des enregistrements :

1 hote    2 classe    3 type    (4 priorités)    5 valeur

ns0    IN    A    192.168.0.1
www    IN    CNAME    ns0

1 soit une machine (nom), soit toutes les machines de la zone(@(remplace le nom de la zone))
2 IN
3 type d'enregistrement
4 la priorité (la plus basse l'emporte sur une requête de meme type)
5 donnée à enregistrer

  • Type d'enregistrement :

A : Hôte local, utilisé pour lier un nom de domaine à une adresse IP
PTR : Pointeur(PTR), utilisé pour lier une adresse IP avec un nom de domaine
NS : Serveur de nom, utilisé pour lier un nom de domaine avec le nom d'un ordinateur
CNAME : nom canonique, utilisé pour lier un nom de domaine canonique avec un autre nom principal ou canonique.
MX : Serveur de messagerie(MX), utilisé pour lier un nom de domaine avec le nom d'un ordinateur qui échange ou transmet le courrier.

  • Le fichier /etc/resolv.conf :

Vous devez indiquer le domaine auquel vous appartenez et l'adresse IP du serveur DNS à tester, exemple :
search mondomaine.fr
nameserver 127.0.01

  • DNS secondaire :

Le DNS secondaire sert à répondre aux requêtes que le DNS primaire ne peut traiter, principalement dans le cas d'une surcharge ou d'une panne de ce dernier.
La configuration est la même sauf que les zones ne sont pas créées, mais copiées.
Ajouter ces lignes au fichier /etc/named.conf :

zone « mondomaine.fr » {
    type slave;
    file « /etc/bind/db.slave.mondomaine.fr »;
    masters {
        192.168.0.1;
    }
}

zone « 0.168.192.in-addr.arpa » {
    type slave;
    file « /etc/bind/db.slave.192.168.0 »;
    masters {
        192.168.0.1;
    }
}


Dans cet exemple, le serveur recopiera les fichiers de zone du serveur DNS primaire qui se trouve à l'adresse 192.168.0.1.

Une fois installé vous pouvez démarrer le serveur via la commande : « named -c /etc/named.conf ».

  1. TESTER VOTRE SERVEUR

  • outils serveurs :
    • Vérifier la configuration via les commandes suivantes :
      « named-checkconf /etc/named.conf »
      « named-checkconf -z »
    • Vérifier vos zones :
      « named-checkzone mondomaine.fr /etc/bind/db.mondomaine.fr »
      « named-checkzone mondomaine.fr /etc/bind/db.192.168.0 »
  • la commande host
    • Tester la recherche directe :

      « host ns0 » : doit retourner 192.168.0.1
    • Tester la recherche inversé :

« host 192.168.0.1 » : doit retourner ns0.mondomaine.fr

  • Tester les alias :

    « host www » : doit retourner 192.168.0.1
  • la commande nslookup
    • afficher l'aide avec « help » :
    • « set type=NS » pour avoir la liste des entre de type NS
    • « set q=mx » pour avoir le mail exchanger
    • « mondomaine.fr » pour tester le domaine mondomaine.fr
  1. LIENS

http://www.isc.org/software/bind/faq

http://www.aidoweb.com/tutoriaux/installer-configurer-serveur-dns-bind-9-641

http://irp.nain-t.net/doku.php/160dns:30_construire_un_dns

http://www.linux-kheops.com/doc/redhat72/rhl-rg-fr-7.2/s1-bind-configuration.html