Page suivante Page précédente Table des matières

11. Installer un serveur de noms (DNS)

11.1 A quoi ça sert ?

Les serveurs de noms (DNS, Domain Name Serveur) ont deux buts principaux :

Les serveurs de noms sont reliés entre eux, et l'ensemble fonctionne selon un principe de délégation de sous-zones.

Exemple : pour trouver l'adresse IP de pc43.mondomaine.fr,

En réalité, c'est un petit peu plus compliqué que cela :

11.2 Configuration des clients (rappel)

On suppose qu'on a configuré un serveur de noms pour le domaine stage. L'adresse de ce serveur est 10.1.1.2.

Dans /etc/resolv.conf, on met par exemple :

search stage 
nameserver 10.1.1.2

la directive ``search'' indique des suffixes par défaut ici pc110 sera synonyme de pc110.stage,

11.3 Configuration d'un serveur maître

Le logiciel named (Name Daemon) et/ou bind (Berkeley Internet Name Daemon ?). Il est lancé par la commande named, et le fichier de configuration principal est dans /etc/bind/named.conf

Le fichier de configuration /etc/bind/named.conf

Ce fichier les zones gérées par le serveur, celles dont il est serveur secondaire, les serveurs racine, etc. Extrait :

options {
        directory "/var/cache/bind";
};

// Les serveurs racine :

zone "." {
        type hint;
        file "/etc/bind/db.root";
};

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

// pour les adresses 127.*.*.* et 0.*.*.*

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

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

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

// la zone stage, et les adresses 10.1.1.*

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

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

Déclaration d'une zone : /etc/bind/db.stage

;
; Fichier de données BIND pour zone stage
;
$TTL    604800
@       IN      SOA     dns.stage. root.dns.stage. (
                         10             ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
                         IN     NS      dns.stage.

courrier  IN A    10.1.1.3
          IN MX 10   courrier.stage.
          
dns     IN A 10.1.1.2
        IN MX   10   courrier.stage.

pc101   IN A 10.1.1.101
        IN MX   10   courrier.stage.

pc102   IN A 10.1.1.102
        IN MX   10   courrier.stage.

L'entête contient diverses indications sur la durée de validité des informations, c'est à dire la durée de conservation dans les caches. C'est utile pour ne pas réinterroger trop fréquemment le même serveur. Le numéro de série est normalement changé chaque fois que le contenu est modifié : de cette façon on ne recharge pas le contenu d'une zone dont le numéro de saisie n'a pas bougé.

Les lignes ``IN A'' (Internet Address) indiquent l'adresse qui correspond à un nom, ``IN MX'' (Internet Mail eXchanger) donnent le nom du serveur de courrier associé.

On peut également introduire des surnoms, exemple:

mail   IN CNAME    courrier.stage.
Littéralement, cette déclaration fournit le vrai nom (canonical name) correspondant à un surnom.

Déclaration de zone inverse: /etc/bind/db.10.1.1

Avant tout, explication des requêtes inverses : ce sont les interrogations du type: ``Quel est le nom de la machine numéro 11.122.33.44 ?''.

Pour une requête de ce type, l'adresse 11.22.33.44 est d'abord retournée pour la tranformer en 44.33.22.11.in-addr.arpa. Le traitement se fait ensuite par délégation ; on cherche le serveur qui s'occupe des numéros IP de la forme 11.*.*.* (c'est-à-dire la sous-zone 11.in-addr.arpa), puis celui qui gère 11.22.*.* 22.11.in-addr.arpa, etc.

Mais revenons à notre zone 10.1.1.*. Le fichier de cette zone contient :

;
; BIND reverse data file for 10.1.1
;
$TTL    604800
@       IN      SOA     dns.stage. root.dns.stage. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
        IN      NS      dns.stage.

2       IN PTR          dns.stage.
101     IN PTR          pc101.stage.
102     IN PTR          pc102.stage.

Voir par exemple le ``DNS-Howto'' pour plus d'explications.


Page suivante Page précédente Table des matières