Index Page précédente Page suivante

XII. MISE EN PLACE DU SERVICE DNS

Le DNS (Domain Name Service) permet d'établir les correspondances entre les adresses IP et les noms de machines. Par convention, le démon named scrute le port 53.
 

A. Installation

Il faut installer le package :

   bind
 

B. Configuration

Prenons d'emblée un exemple simple mais concret avec un réseau constitué de 4 machines :
 
Noms machines Sous-réseaux IP Masques réseau
cirl1 esic 192.168.0.1 255.255.255.0
cirl2 esic 192.168.0.2 255.255.255.0
cirl3 esic 192.168.0.3 255.255.255.0
cirl4 esic 192.168.0.4 255.255.255.0

On suppose ici que c'est cirl3 qui est le serveur de noms. Editez le fichier /etc/named.conf et modifiez le de la façon suivante :

   options {
      directory "/var/named";
      /*
       * If there is a firewall between you and nameservers you want
       * to talk to, you might need to uncomment the query-source
       * directive below. Previous versions of BIND always asked
       * questions using port 53, but BIND 8.1 uses an unprivileged
       * port by default.
       */

   // query-source address * port 53;

   };

   /*
    * Configure notre DNS pour qu'il interroge les autres DNS quand
    * lui-même ne peut répondre. Notez que notre fichier named.ca ne
    * contient que des commentaires (voir plus loin). Par conséquent,
    * cette fonction ne marchera pas ici.
    */
   zone "." {
      type hint;
      file "named.ca";
   };

   /*
    * Définissons notre propre domaine pour le loopback, indiquons
    * que nous sommes son serveur principal (type master) et
    * que ces renseignements ne doivent pas être communiqués
    * (notify no) aux autres DNS (s'ils existent).
    */
   zone "0.0.127.in-addr.arpa" {
      notify no;
      type master;
      file "pz/127.0.0";
   };

   /*
    * Définissons notre propre domaine pour le réseau, indiquons
    * que nous sommes son serveur principal (type master) et
    * que ces renseignements ne doivent pas être communiqués
    *(notify no) aux autres DNS (s'ils existent).
    */
   zone "0.168.192.in-addr.arpa" {
      notify no;
      type master;
      file "pz/192.168.0";
   };

   /*
    * Même chose dans l'autre sens : on demande ici au DNS de
    * savoir quelle est l'adresse IP d'une machine dont on lui
    * communique le nom et qui est dans le domaine esic.
    */
   zone "esic" {
      notify no;
      type master;
      file "pz/esic";
   };

Remarque : in-addr.arpa est un domaine spécial utilisé pour le mappage des adresses de noms.

Editez maintenant le fichier /etc/named.boot et modifiez le de la façon suivante :

   directory /var/named
   cache named.ca
   primary 0.168.192.in-addr.arpa pz/192.168.0

Editez le fichier /etc/nsswitch.conf. Il contient des commentaires que vous avez tout intérêt à lire. Ensuite, trouvez la ligne qui commence par host, elle doit ressembler à ceci :

   hosts: files dns

Si ce n'est pas le cas, rajoutez la. Cette ligne permet de demander au système de regarder dans le fichier /etc/hosts avant d'interroger le DNS en suivant les indications contenues dans le fichier /etc/resolv.conf.

Editez le fichier /etc/host.conf. Recherchez la ligne order qui doit ressembler à :

   order hosts,bind

Cette ligne définit l'ordre de recherche (fichier /etc/hosts puis DNS si le /etc/hosts ne contient pas la réponse).

Allez dans le répertoire /var/named. Editez le fichier named.ca. Ce fichier donne une description de tous les serveurs DNS du monde. Comme votre réseau n'est pas sur Internet, vous pouvez commenter toutes les lignes. Editez le fichier named.local et modifiez le de la façon suivante :

   @ IN SOA esic. cirl3.esic. (
                   1   ; Serial
                   8H  ; Refresh
                   2H  ; Retry
                   1W  ; Expire
                   1D) ; Minimum TTL
        NS    cirl3.esic.

   1    PTR    cirl3.esic.

Allez dans le répertoire /var/named/pz (s'il n'existe pas, créez le). Créez et éditez le fichier 127.0.0 puis modifiez le de la façon suivante :

   @ IN SOA esic. cirl3.esic. (
                   1   ; Serial
                   8H  ; Refresh
                   2H  ; Retry
                   1W  ; Expire
                   1D) ; Minimum TTL
        IN    NS    cirl3.esic.

   1    IN    PTR    cirl3.esic.

Créez puis éditez le fichier 129.168.0. Modifiez le de la façon suivante :

   @ IN SOA esic. cirl3.esic. (
                   1   ; Serial
                   8H  ; Refresh
                   2H  ; Retry
                   1W  ; Expire
                   1D) ; Minimum TTL
        IN    NS    cirl3.esic.

   1    IN    PTR    cirl1.esic.
   2    IN    PTR    cirl2.esic.
   3    IN    PTR    cirl3.esic.
   4    IN    PTR    cirl4.esic.

Enfin, créez puis modifiez le fichier esic de la façon suivante :

   @ IN SOA esic. cirl3.esic. (
                   1   ; Serial
                   8H  ; Refresh
                   2H  ; Retry
                   1W  ; Expire
                   1D) ; Minimum TTL

        IN    NS    cirl3.esic.

   cirl1    A    192.168.0.1
   cirl2    A    192.168.0.2
   cirl3    A    192.168.0.3
   cirl4    A    192.168.0.4

Votre serveur de noms est maintenant configuré. Pour lancer le service, tapez :

   /etc/rc.d/init.d/named start (ou restart s'il est déjà lancé)

Utilisez l'utilitaire setup (ou drakxservices) pour que le démon named se lance à chaque redémarrage de la machine.

Pour tester si votre DNS fonctionne, éditez le fichier /etc/resolv.conf et ajoutez en début de fichier la ligne suivante :

   nameserver 192.168.0.3

Tapez nslookup. Le programme doit répondre :

   server: cirl3.esic
   Address: 192.168.0.3

Tapez 192.168.0.2 au prompt. Le programme doit répondre :

   server: cirl3.esic
   Address: 192.168.0.3
   Name: cirl2.esic
   Adress : 192.168.0.2

Si tel est le cas, votre DNS fonctionne correctement. Tapez exit pour sortir de nslookup.
 

C. Mettre en place un serveur secondaire
 

Il est parfois utile de mettre en place un serveur secondaire qui prend le relais lorsque le serveur primaire ne fonctionne pas. Si le serveur primaire a pour adresse 192.168.0.3, mettez une ligne comme celle-ci dans le fichier /etc/named.conf du serveur secondaire :

   zone "esic" {
      type slave;
      file "sz/esic";
      masters { 192.168.0.3; };
   };

Vous pouvez mettre plusieurs serveurs maîtres, ajoutez les sur la ligne masters en les séparant par un ";" (point-virgule)
 

D. Créer des alias

Vous pouvez faire correspondre plusieurs noms de machines à une même adresse IP. Par exemple, rajoutez dans le fichier /var/named/pz/esic la ligne suivante :
 
 
cirl3 A 192.168.0.3
www CNAME cirl3

Relancez named. Si vous pinguez l'adresse www.esic, c'est la machine cirl3.esic qui répondra.


Index Page précédente Page suivante