[gull] DNS prive & caching

Leopoldo Ghielmetti leopoldo.ghielmetti at a3.epfl.ch
Mon Aug 27 18:13:32 CEST 2007


On Mon, 2007-08-27 at 15:07 +0200, cedric briner wrote:
> > Tous les serveurs dns font du caching. Pourquoi ne pas utiliser le dns de ta
> > distrib Linux?
> car je recherche une solution simple a mettre en place.
> Ex: le fichier de conf, il faut specifier:
>   - le DNS de l'ISP
>   - un fichier /etc/hosts sur lequel je mets la liste des machines de 
> notre reseau

Je ne connais pas dproxy (il a l'air sympa). Pour ma part, j'utilise
bind sans trop de problèmes et il n'est pas si compliqué à configurer
qu'il en a l'air.

> J'avais entendu qu'il fallait rester sur BIND, mais la doc est indigeste 
> en 1/2 journee et BIND me parait bien plus generaliste que n'est dproxy.

Oui, il est très généraliste vu qu'il s'agit DU serveur DNS.

> Mais si l'un de vous me dit a nouveau qu'il vaut mieux rester sous BIND, 
> des lors je fouillerai un peu plus ce sujet.
> 
> > L'attribution du DNS par DHCP c'est ce qu'il faut.
> ok.. maintenant j'en suis sur.

ça aussi ça demande un peu de configuration mais ce n'est pas la mer à
boire.

> merci pour tout
> 
> Ced.

Voici une petite config pour bind qui devrait marcher (les noms des
répertoires sont conformes pour ma machine (SuSE), vérifie pour la
tienne), il faut mettre le bon nom de domaine, ici j'ai mis
mondomaine.ch:
options {
   directory "/var/lib/named";
   dump-file "/var/log/named_dump.db";
   statistics-file "/var/log/named.stats";
   notify no;
 # Ici mets l'adresse IP du DNS de l'EPFL pour les requêtes récursives
   forwarders { 1.2.3.4; };
};

logging {
   channel query_logging {
       file "/var/log/named_querylog" versions 3 size 100M;
       print-time yes;
   };

   channel syslog_queries {
       syslog user;
       severity info;
   };

   channel syslog_errors {
       syslog user;
       severity error;
   };

   category default { syslog_errors;  };

   category lame-servers { null; };
};

key DHCP_UPDATER {
        algorithm HMAC-MD5.SIG-ALG.REG.INT;
 # La clé est à générer (je cherche comment, je ne me rappelle plus :-)
        secret    XXXXXXXXXXXXXXXXXXXXXX==;
};

view "private" {
    match-clients { 192.168.0.0/24; } # pour limiter la vue des noms

    zone "." in {
        type hint;
        file "root.hint";
    };

    zone "localhost" in {
        type master;
        file "localhost.zone";
    };

    zone "0.0.127.in-addr.arpa" in {
        type master;
        file "127.0.0.zone";
    };

    zone "mondomaine.ch" in {
        type master;
        file "master/private/mondomaine.ch.zone";
        allow-update { key DHCP_UPDATER; };
    };

    zone "0.168.192.in-addr.arpa" in {
        type master;
        file "master/private/192.168.0.zone";
        allow-update { key DHCP_UPDATER; };
    };
};

et voilà!

Ensuite tu crées les fichiers contenants les informations sur le domaine
dans le répertoire spécifié dans le fichier de config, dans notre
cas /var/lib/named.

Les fichers /var/lib/named/127.0.0.zone et /var/lib/named/localhost.zone
normalement ils existent déjà et il n'y a pas besoin de les changer.

On crée donc les deux fichiers mondomaine.ch.zone et 192.168.0.zone
(attention, les . à la fin des noms sont indispensables).

Dans l'exemple ci-dessous j'ai supposé que le serveur s'appelle
dns.mondomaine.ch et son adresse est 192.168.0.1 (mettre ce qu'il
convient).

Fichier /var/lib/named/master/private/mondomaine.ch.zone:
$ORIGIN .
$TTL 86400      ; 1 day
mondomaine.ch          IN SOA  mondomaine.ch. root.mondomaine.ch. (
                                1          ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      dns.mondomaine.ch.
$ORIGIN mondomaine.ch.
dns                     A   192.168.0.1
; mettre ici tous les noms des machines avec leur adresse IP, si la mise
à jour via dhcp est activée ce sera automatique.

Fichier /var/lib/named/master/private/192.168.0.zone:
$ORIGIN .
$TTL 86400      ; 1 day
0.168.192.in-addr.arpa  IN SOA  mondomaine.ch. root.mondomaine.ch. (
                                1          ; serial
                                10800      ; refresh (3 hours)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum (1 day)
                                )
                        NS      dns.mondomaine.ch.
$ORIGIN 0.168.192.in-addr.arpa.
1                       PTR     dns.mondomaine.ch.
; mettre ici tous les noms des machines avec leur adresse IP, si la mise
à jour via dhcp est activée ce sera automatique.

Les valeurs "serial" tu dois les incrémenter à chaque fois que tu
modifies les fichiers car ils indiquent qu'il y a une mise à jour.

Pour terminer tu configures le dhcp pour mettre à jour le DNS quand une
machine se connecte, donc dans le fichier du dhcp il faut avoir la même
clé (il suffit de copier la section key en entier dans le fichier dhcp
et puis tu spécifie le nom de la clé dans les zones dhcp (j'imagine
qu'on aura bientôt une autre requête sur comment on fait :-) ).
T'inquiète pas, on va te répondre.

ciao, Leo





More information about the gull mailing list