Debian logo [inetdoc.LiNUX]

6. Configuration du serveur secondaire de la zone stri.lab

Pour distinguer un serveur primaire d'un serveur secondaire, il faut savoir que le serveur primaire détient effectivement les fichiers de déclaration des enregistrements. Un serveur secondaire obtient les copies des déclarations des enregistrements par transfert réseau.

Dans cette section, on reprend les mêmes fichiers de configuration en désignant le serveur primaire comme détenteur des enregistrements.

Le fichier /etc/bind/named.conf.local du nouveau serveur DNS doit être édité. Une fois l'opération effectuée, le serveur a autorité sur la zone stri.lab. Voici une copie de ce fichier.

# cat /etc/bind/named.conf.local 
//
// Do any local configuration here
//

zone "stri.lab" {
        type slave;
        masters {
                192.200.0.3;
                };
        file "backup.stri.lab";
        };

zone "0.200.192.in-addr.arpa" {
        type slave;
        masters {
                192.200.0.3;
                };
        file "backup.192.200.0";
        };

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

Une fois la déclaration de zone en place, il faut redémarrer le service pour que le serveur secondaire obtienne une copie des enregistrements détenus par le serveur primaire.

# /etc/init.d/bind9 restart
# tail -200 /var/log/syslog | grep named
named[908]: exiting
named[2813]: starting BIND 9.7.0-P1 -u bind
named[2813]: built with '--prefix=/usr' <snipped/>
named[2813]: adjusted limit on open files from 1024 to 1048576
named[2813]: found 1 CPU, using 1 worker thread
named[2813]: using up to 4096 sockets
named[2813]: loading configuration from '/etc/bind/named.conf'
named[2813]: reading built-in trusted keys from file '/etc/bind/bind.keys'
named[2813]: using default UDP/IPv4 port range: [1024, 65535]
named[2813]: using default UDP/IPv6 port range: [1024, 65535]
named[2813]: listening on IPv6 interfaces, port 53
named[2813]: listening on IPv4 interface lo, 127.0.0.1#53
named[2813]: listening on IPv4 interface eth0, 192.200.0.4#53
named[2813]: generating session key for dynamic DNS
named[2813]: automatic empty zone: 254.169.IN-ADDR.ARPA
named[2813]: automatic empty zone: 2.0.192.IN-ADDR.ARPA
named[2813]: automatic empty zone: 255.255.255.255.IN-ADDR.ARPA
named[2813]: automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
named[2813]: automatic empty zone: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
named[2813]: automatic empty zone: D.F.IP6.ARPA
named[2813]: automatic empty zone: 8.E.F.IP6.ARPA
named[2813]: automatic empty zone: 9.E.F.IP6.ARPA
named[2813]: automatic empty zone: A.E.F.IP6.ARPA
named[2813]: automatic empty zone: B.E.F.IP6.ARPA
named[2813]: command channel listening on 127.0.0.1#953
named[2813]: command channel listening on ::1#953
named[2813]: zone 0.in-addr.arpa/IN: loaded serial 1
named[2813]: zone 127.in-addr.arpa/IN: loaded serial 1
named[2813]: zone 255.in-addr.arpa/IN: loaded serial 1
named[2813]: zone localhost/IN: loaded serial 2
named[2813]: running
named[2813]: zone 0.200.192.in-addr.arpa/IN: Transfer started.
named[2813]: transfer of '0.200.192.in-addr.arpa/IN' from 192.200.0.3#53: connected using 192.200.0.4#43261
named[2813]: zone 0.200.192.in-addr.arpa/IN: transferred serial 2010052401
named[2813]: transfer of '0.200.192.in-addr.arpa/IN' from 192.200.0.3#53: \
            Transfer completed: 1 messages, 10 records, 280 bytes, 0.085 secs (3294 bytes/sec)
named[2813]: zone 0.200.192.in-addr.arpa/IN: sending notifies (serial 2010052401)
named[2813]: zone stri.lab/IN: Transfer started.
named[2813]: transfer of 'stri.lab/IN' from 192.200.0.3#53: connected using 192.200.0.4#42378
named[2813]: zone stri.lab/IN: transferred serial 2010052401
named[2813]: transfer of 'stri.lab/IN' from 192.200.0.3#53: \
            Transfer completed: 1 messages, 14 records, 332 bytes, 0.085 secs (3905 bytes/sec)
named[2813]: zone stri.lab/IN: sending notifies (serial 2010052401)

La lecture des journaux système confirme que le transfert de zone s'est déroulé correctement. Le serveur secondaire est maintenant prêt à traiter les requêtes issues des clients sur la base des copies transférées. On peut consulter le résultat des transferts via les fichiers contenus dans le répertoire /var/cache/bind/.

# cat /var/cache/bind/backup.stri.lab 
$ORIGIN .
$TTL 60 ; 1 minute
stri.lab                IN SOA  stri.lab. root.stri.lab. (
                                2010052402 ; serial
                                20         ; refresh (20 seconds)
                                5          ; retry (5 seconds)
                                420        ; expire (7 minutes)
                                60         ; minimum (1 minute)
                                )
                        NS      clnt.stri.lab.
                        NS      srvr.stri.lab.
                        MX      10 smtp.stri.lab.
                        TXT     "Training Lab"
$ORIGIN stri.lab.
clnt                    A       192.200.0.4
ldap                    A       192.200.0.12
nfs                     A       192.200.0.11
ns1                     CNAME   srvr
ns2                     CNAME   clnt
rtr                     A       192.200.0.1
smtp                    A       192.200.0.10
srvr                    A       192.200.0.3

Comme dans la section précédente, on peut valider un à un les enregistrements en interrogeant le service. Voici juste un exemple désignant explicitement le serveur secondaire.

# dig @192.200.0.4 stri.lab mx

; <<>> DiG 9.7.0-P1 <<>> @192.200.0.4 stri.lab mx
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29883
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;stri.lab.                      IN      MX

;; ANSWER SECTION:
stri.lab.               60      IN      MX      10 smtp.stri.lab.

;; AUTHORITY SECTION:
stri.lab.               60      IN      NS      srvr.stri.lab.
stri.lab.               60      IN      NS      clnt.stri.lab.

;; ADDITIONAL SECTION:
smtp.stri.lab.          60      IN      A       192.200.0.10
clnt.stri.lab.          60      IN      A       192.200.0.4
srvr.stri.lab.          60      IN      A       192.200.0.3

;; Query time: 0 msec
;; SERVER: 192.200.0.4#53(192.200.0.4)
;; WHEN: Mon May 24 16:24:53 2010
;; MSG SIZE  rcvd: 133

Lors d'une modification de la liste des enregistrements, il est important d'incrémenter correctement le numéro de série de façon à notifier l'ensemble des serveurs ayant autorité sur une zone. Dans l'extrait du fichier /var/log/syslog/ du serveur primaire donné ci-dessous, on voit bien apparaître ces notifications.

named[1556]: running
named[1556]: zone 0.200.192.in-addr.arpa/IN: sending notifies (serial 2010052402)
named[1556]: zone stri.lab/IN: sending notifies (serial 2010052402)
named[1556]: client 192.200.0.4#41748: transfer of '0.200.192.in-addr.arpa/IN': AXFR-style IXFR started
named[1556]: client 192.200.0.4#41748: transfer of '0.200.192.in-addr.arpa/IN': AXFR-style IXFR ended
named[1556]: client 192.200.0.4#19941: received notify for zone '0.200.192.in-addr.arpa'
named[1556]: client 192.200.0.4#40869: transfer of 'stri.lab/IN': AXFR-style IXFR started
named[1556]: client 192.200.0.4#40869: transfer of 'stri.lab/IN': AXFR-style IXFR ended
named[1556]: client 192.200.0.4#2069: received notify for zone 'stri.lab'