Debian logo [inetdoc.LiNUX]

4. Requêtes DNS sur les différents types d'enregistrements (Resource Records)

L'utilisation du cache du serveur DNS est identifiable à partir du temps de traitement d'une requête. Ce temps de traitement apparaît dans le champ Query time des résultats affichés à la suite d'un appel à la commande dig.

Dans les deux exemples ci-dessous, le serveur interrogé est bien le service local avec l'adresse IP 127.0.0.1. La première requête a un temps de traitement de 700ms tandis que la seconde a un temps de traitement de 0ms. Cette seconde réponse est fournie par le cache du serveur DNS.

# dig www.linux-france.org
<snipped/>
;; Query time: 700 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 13:16:14 2010
;; MSG SIZE  rcvd: 177
# dig www.linux-france.org
<snipped/>
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 13:19:04 2010
;; MSG SIZE  rcvd: 177

Les différents enregistrements ou Resource Records d'une zone sont accessibles à partir de requêtes individuelles. Les options de la commande dig, documentées dans les pages de manuels (man dig), permettent d'indiquer le type d'enregistrement demandé (RR) après le nom de domaine. Les réponses aux requêtes suivantes apparaissent après la mention ANSWER SECTION:.

4.1. Types de la classe Internet (IN)

Requête sur un serveur de noms, NS
$ dig nic.fr ns

; <<>> DiG 9.7.0-P1 <<>> nic.fr ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9644
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;nic.fr.                                IN      NS

;; ANSWER SECTION:
nic.fr.                 172800  IN      NS      ns3.nic.fr.
nic.fr.                 172800  IN      NS      ns2.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns1.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns4.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns3.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns1.nic.fr.
nic.fr.                 172800  IN      NS      ns2.nic.fr.

;; Query time: 201 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 11:25:14 2010
;; MSG SIZE  rcvd: 154
Requête sur un nom d'hôte, A
$ dig www.nic.fr

; <<>> DiG 9.7.0-P1 <<>> www.nic.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20692
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 7, ADDITIONAL: 0

;; QUESTION SECTION:
;www.nic.fr.                    IN      A

;; ANSWER SECTION:
www.nic.fr.             172800  IN      CNAME   rigolo.nic.fr.
rigolo.nic.fr.          172800  IN      A       192.134.4.20

;; AUTHORITY SECTION:
nic.fr.                 172626  IN      NS      ns4.ext.nic.fr.
nic.fr.                 172626  IN      NS      ns2.ext.nic.fr.
nic.fr.                 172626  IN      NS      ns1.nic.fr.
nic.fr.                 172626  IN      NS      ns3.ext.nic.fr.
nic.fr.                 172626  IN      NS      ns1.ext.nic.fr.
nic.fr.                 172626  IN      NS      ns3.nic.fr.
nic.fr.                 172626  IN      NS      ns2.nic.fr.

;; Query time: 134 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 11:28:08 2010
;; MSG SIZE  rcvd: 195
Requête sur une adresse IP, PTR
$ dig -x 192.134.4.20

; <<>> DiG 9.7.0-P1 <<>> -x 192.134.4.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31468
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:
;20.4.134.192.in-addr.arpa.     IN      PTR

;; ANSWER SECTION:
20.4.134.192.in-addr.arpa. 172800 IN    PTR     rigolo.nic.fr.

;; AUTHORITY SECTION:
4.134.192.in-addr.arpa. 172800  IN      NS      ns2.nic.fr.
4.134.192.in-addr.arpa. 172800  IN      NS      ns1.nic.fr.
4.134.192.in-addr.arpa. 172800  IN      NS      ns3.nic.fr.

;; Query time: 912 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 11:29:35 2010
;; MSG SIZE  rcvd: 124
Requête sur un agent de transfert de courrier électronique, MX
$ dig nic.fr mx

; <<>> DiG 9.7.0-P1 <<>> nic.fr mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59170
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 7, ADDITIONAL: 5

;; QUESTION SECTION:
;nic.fr.                                IN      MX

;; ANSWER SECTION:
nic.fr.                 172800  IN      MX      20 mx2.nic.fr.
nic.fr.                 172800  IN      MX      30 mx3.nic.fr.
nic.fr.                 172800  IN      MX      10 mx1.nic.fr.

;; AUTHORITY SECTION:
nic.fr.                 172442  IN      NS      ns2.ext.nic.fr.
nic.fr.                 172442  IN      NS      ns1.nic.fr.
nic.fr.                 172442  IN      NS      ns3.ext.nic.fr.
nic.fr.                 172442  IN      NS      ns1.ext.nic.fr.
nic.fr.                 172442  IN      NS      ns3.nic.fr.
nic.fr.                 172442  IN      NS      ns2.nic.fr.
nic.fr.                 172442  IN      NS      ns4.ext.nic.fr.

;; ADDITIONAL SECTION:
mx1.nic.fr.             172800  IN      A       192.134.4.10
mx1.nic.fr.             172800  IN      AAAA    2001:660:3003:2::4:10
mx2.nic.fr.             172800  IN      A       192.134.4.11
mx2.nic.fr.             172800  IN      AAAA    2001:660:3003:2::4:11
mx3.nic.fr.             172800  IN      A       192.134.4.11

;; Query time: 97 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 24 11:31:12 2010
;; MSG SIZE  rcvd: 318

Pour émettre une requête itérative (ou non récursive), il faut utiliser l'option +trace.

$ dig +trace www.nic.fr

; <<>> DiG 9.7.0-P1 <<>> +trace www.nic.fr
;; global options: +cmd
.                       524366  IN      NS      f.root-servers.net.
.                       524366  IN      NS      j.root-servers.net.
.                       524366  IN      NS      k.root-servers.net.
.                       524366  IN      NS      m.root-servers.net.
.                       524366  IN      NS      i.root-servers.net.
.                       524366  IN      NS      c.root-servers.net.
.                       524366  IN      NS      b.root-servers.net.
.                       524366  IN      NS      h.root-servers.net.
.                       524366  IN      NS      d.root-servers.net.
.                       524366  IN      NS      g.root-servers.net.
.                       524366  IN      NS      l.root-servers.net.
.                       524366  IN      NS      e.root-servers.net.
.                       524366  IN      NS      a.root-servers.net.
;; Received 500 bytes from 127.0.0.1#53(127.0.0.1) in 0 ms

fr.                     172800  IN      NS      a.nic.fr.
fr.                     172800  IN      NS      c.nic.fr.
fr.                     172800  IN      NS      d.ext.nic.fr.
fr.                     172800  IN      NS      d.nic.fr.
fr.                     172800  IN      NS      e.ext.nic.fr.
fr.                     172800  IN      NS      f.ext.nic.fr.
fr.                     172800  IN      NS      g.ext.nic.fr.
;; Received 430 bytes from 128.63.2.53#53(h.root-servers.net) in 144 ms

nic.fr.                 172800  IN      NS      ns2.nic.fr.
nic.fr.                 172800  IN      NS      ns1.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns3.nic.fr.
nic.fr.                 172800  IN      NS      ns3.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns2.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns1.nic.fr.
nic.fr.                 172800  IN      NS      ns4.ext.nic.fr.
;; Received 382 bytes from 193.176.144.6#53(e.ext.nic.fr) in 224 ms

www.nic.fr.             172800  IN      CNAME   rigolo.nic.fr.
rigolo.nic.fr.          172800  IN      A       192.134.4.20
nic.fr.                 172800  IN      NS      ns4.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns2.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns3.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns1.nic.fr.
nic.fr.                 172800  IN      NS      ns2.nic.fr.
nic.fr.                 172800  IN      NS      ns1.ext.nic.fr.
nic.fr.                 172800  IN      NS      ns3.nic.fr.
;; Received 419 bytes from 192.134.0.49#53(ns3.nic.fr) in 57 ms

Après tous ces exemples de requêtes, on voit clairement que le fonctionnement par défaut du logiciel BIND est récursif. Cette prise en charge «ouverte» des requêtes peut poser quelques soucis de sécurité. Si il est légitime de prendre complètement en charge les interrogations DNS émises par les hôtes du réseau administré de façon à alimenter le cache et optimiser le fonctionnement du service, il n'en va pas de même pour les hôtes du réseau public. Il est donc important de configurer le service en conséquence. Les contrôles d'accès qui permettent de ne satisfaire que les requêtes émises par les hôtes appartenant aux «réseaux de confiance» sont présentées dans la Section 8, « Sécurisation de premier niveau ».

4.2. Types de la classe CHAOS

Tous les exemples de requêtes donnés ci-avant utilisent la classe Internet (IN) de façon implicite. Pour interroger un type de la classe CHAOS, il est nécessaire d'indiquer cette classe dans la commande d'interrogation du service DNS. Voici deux exemples de requêtes sur les deux types les plus souvent recherchés : la version du logiciel et la liste de ses auteurs.

$ dig @localhost. version.bind txt chaos +novc

; <<>> DiG 9.7.0-P1 <<>> @localhost. version.bind txt chaos +novc
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4759
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;version.bind.                  CH      TXT

;; ANSWER SECTION:
version.bind.           0       CH      TXT     "9.7.0-P1"

;; AUTHORITY SECTION:
version.bind.           0       CH      NS      version.bind.

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon May 24 11:35:57 2010
;; MSG SIZE  rcvd: 65
$ dig @localhost. authors.bind txt chaos +novc

; <<>> DiG 9.7.0-P1 <<>> @localhost. authors.bind txt chaos +novc
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21420
;; flags: qr aa rd; QUERY: 1, ANSWER: 14, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;authors.bind.                  CH      TXT

;; ANSWER SECTION:
authors.bind.           0       CH      TXT     "Jeremy C. Reed"
authors.bind.           0       CH      TXT     "Michael Sawyer"
authors.bind.           0       CH      TXT     "Brian Wellington"
authors.bind.           0       CH      TXT     "Mark Andrews"
authors.bind.           0       CH      TXT     "James Brister"
authors.bind.           0       CH      TXT     "Ben Cottrell"
authors.bind.           0       CH      TXT     "Michael Graff"
authors.bind.           0       CH      TXT     "Andreas Gustafsson"
authors.bind.           0       CH      TXT     "Bob Halley"
authors.bind.           0       CH      TXT     "Evan Hunt"
authors.bind.           0       CH      TXT     "David Lawrence"
authors.bind.           0       CH      TXT     "Danny Mayer"
authors.bind.           0       CH      TXT     "Damien Neil"
authors.bind.           0       CH      TXT     "Matt Nelson"

;; AUTHORITY SECTION:
authors.bind.           0       CH      NS      authors.bind.

;; Query time: 4 msec
;; SERVER: ::1#53(::1)
;; WHEN: Mon May 24 11:38:55 2010
;; MSG SIZE  rcvd: 404

Les valeurs associées à ces types peuvent donner des renseignements précieux pour une éventuelle attaque sur le service DNS. Il est donc vivement conseillé de masquer ces valeurs lorsque l'on exploite un service DNS directement accessible depuis l'Internet.

4.3. Validation ou dépannage d'une configuration

Les sections précédentes sur les types de requêtes fournissent déjà quelques éléments sur la validation ou le dépannage du service DNS.

  • Le temps de réponse à une requête (Query time:) renseigne sur l'utilisation ou non du cache mémoire.

  • En cas de panne, une requête itérative permet d'identifier le point de rupture dans la chaîne de résolution des noms.

Il reste deux options particulièrement utiles à la mise au point d'une configuration correcte.

Il est possible de désigner explicitement le serveur DNS qui doit prendre en charge la requête à l'aide de son adresse IP. Cette opération est très utile pour vérifier qu'un serveur primaire répond correctement aux demandes sur les enregistrements qu'il détient. Dans le contexte de la sécurisation du service, cette même opération sert à contrôler qu'un serveur ne répond qu'au requêtes qu'il est sensé traiter. Voici deux exemples utilisant respectivement la désignation du serveur interrogé par son adresse IP et la requête directe de transfert de zone.

Pour vérifier que le service DNS de la zone nic.fr fournit l'adresse du serveur Web ayant le nom www.nic.fr, on peut procéder comme suit.

  • On identifie un serveur de nom pour la zone.

    $ dig nic.fr ns
    
    ; <<>> DiG 9.7.0-P1 <<>> nic.fr ns
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59555
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 2
    
    ;; QUESTION SECTION:
    ;nic.fr.                                IN      NS
    
    ;; ANSWER SECTION:
    nic.fr.                 172554  IN      NS      ns1.nic.fr.
    nic.fr.                 172554  IN      NS      ns4.ext.nic.fr.
    nic.fr.                 172554  IN      NS      ns3.ext.nic.fr.
    nic.fr.                 172554  IN      NS      ns2.nic.fr.
    nic.fr.                 172554  IN      NS      ns2.ext.nic.fr.
    nic.fr.                 172554  IN      NS      ns3.nic.fr.
    nic.fr.                 172554  IN      NS      ns1.ext.nic.fr.
    
    ;; ADDITIONAL SECTION:
    ns1.nic.fr.             172570  IN      A       192.93.0.1
    ns1.nic.fr.             172570  IN      AAAA    2001:660:3005:1::1:1
    
    ;; Query time: 0 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Mon May 24 19:05:15 2010
    ;; MSG SIZE  rcvd: 198
  • On interroge directement le serveur primaire de la zone.

    $ dig @ns1.nic.fr. www.nic.fr
    
    ; <<>> DiG 9.7.0-P1 <<>> @ns1.nic.fr. www.nic.fr
    ; (2 servers found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18931
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 7, ADDITIONAL: 11
    ;; WARNING: recursion requested but not available
    
    ;; QUESTION SECTION:
    ;www.nic.fr.                    IN      A
    
    ;; ANSWER SECTION:
    www.nic.fr.             172800  IN      CNAME   rigolo.nic.fr.
    rigolo.nic.fr.          172800  IN      A       192.134.4.20
    
    ;; AUTHORITY SECTION:
    nic.fr.                 172800  IN      NS      ns2.nic.fr.
    nic.fr.                 172800  IN      NS      ns1.ext.nic.fr.
    nic.fr.                 172800  IN      NS      ns2.ext.nic.fr.
    nic.fr.                 172800  IN      NS      ns1.nic.fr.
    nic.fr.                 172800  IN      NS      ns3.nic.fr.
    nic.fr.                 172800  IN      NS      ns3.ext.nic.fr.
    nic.fr.                 172800  IN      NS      ns4.ext.nic.fr.
    
    ;; ADDITIONAL SECTION:
    ns1.ext.nic.fr.         172800  IN      A       193.51.208.13
    ns1.nic.fr.             172800  IN      A       192.93.0.1
    ns1.nic.fr.             172800  IN      AAAA    2001:660:3005:1::1:1
    ns2.ext.nic.fr.         172800  IN      A       194.2.0.30
    ns2.nic.fr.             172800  IN      A       192.93.0.4
    ns2.nic.fr.             172800  IN      AAAA    2001:660:3005:1::1:2
    ns3.ext.nic.fr.         172800  IN      A       194.2.0.60
    ns3.nic.fr.             172800  IN      A       192.134.0.49
    ns3.nic.fr.             172800  IN      AAAA    2001:660:3006:1::1:1
    ns4.ext.nic.fr.         172800  IN      A       193.0.0.196
    ns4.ext.nic.fr.         172800  IN      AAAA    2001:610:240:0:53::4
    
    ;; Query time: 77 msec
    ;; SERVER: 192.93.0.1#53(192.93.0.1)
    ;; WHEN: Mon May 24 19:08:52 2010
    ;; MSG SIZE  rcvd: 419

    On voit apparaître une indication selon laquelle le serveur interrogé ne prendra pas en charge les requêtes récursives pour le client utilisé. C'est tout à fait normal dans la mesure où ces tests de requêtes ne sont pas effectués depuis un poste client appartenant au domaine nic.fr.

    Pour autant, on obtient bien la réponse à la requête posée puisque l'enregistrement demandé appartient bien à la zone sur laquelle le serveur a autorité.

  • On interroge directement le même serveur avec une requête portant sur une autre zone.

    $ dig @ns1.nic.fr. www.laredoute.fr
    
    ; <<>> DiG 9.7.0-P1 <<>> @ns1.nic.fr. www.laredoute.fr
    ; (2 servers found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 15319
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
    ;; WARNING: recursion requested but not available
    
    ;; QUESTION SECTION:
    ;www.laredoute.fr.              IN      A
    
    ;; Query time: 74 msec
    ;; SERVER: 192.93.0.1#53(192.93.0.1)
    ;; WHEN: Mon May 24 19:16:10 2010
    ;; MSG SIZE  rcvd: 34

    Cette fois-ci la requête est refusée. Le serveur primaire ne veut pas prendre en charge la requête posée. C'est encore tout à fait normal dans la mesure le client n'appartient pas aux réseaux de la zone nic.fr.

  • Certains services sont très «ouverts» et acceptent de prendre en charge les requêtes de n'importe quel client. La même requête posée à un de ces services est traitée normalement.

    $ dig @dns2.gaoland.net. www.laredoute.fr
    
    ; <<>> DiG 9.7.0-P1 <<>> @dns2.gaoland.net. www.laredoute.fr
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11454
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 9, ADDITIONAL: 9
    
    ;; QUESTION SECTION:
    ;www.laredoute.fr.              IN      A
    
    ;; ANSWER SECTION:
    www.laredoute.fr.       1800    IN      CNAME   laredoute.fr.edgekey.net.
    laredoute.fr.edgekey.net. 3415  IN      CNAME   e143.b.akamaiedge.net.
    e143.b.akamaiedge.net.  20      IN      A       88.221.192.169
    
    ;; AUTHORITY SECTION:
    b.akamaiedge.net.       1566    IN      NS      n0b.akamaiedge.net.
    b.akamaiedge.net.       2466    IN      NS      n1b.akamaiedge.net.
    b.akamaiedge.net.       3366    IN      NS      n5b.akamaiedge.net.
    b.akamaiedge.net.       2466    IN      NS      n7b.akamaiedge.net.
    b.akamaiedge.net.       2466    IN      NS      n4b.akamaiedge.net.
    b.akamaiedge.net.       3366    IN      NS      n8b.akamaiedge.net.
    b.akamaiedge.net.       1566    IN      NS      n3b.akamaiedge.net.
    b.akamaiedge.net.       3366    IN      NS      n2b.akamaiedge.net.
    b.akamaiedge.net.       1566    IN      NS      n6b.akamaiedge.net.
    
    ;; ADDITIONAL SECTION:
    n0b.akamaiedge.net.     1566    IN      A       81.52.251.5
    n1b.akamaiedge.net.     1717    IN      A       213.200.111.69
    n5b.akamaiedge.net.     3366    IN      A       81.52.251.8
    n7b.akamaiedge.net.     1717    IN      A       81.52.251.13
    n4b.akamaiedge.net.     1717    IN      A       81.52.251.12
    n8b.akamaiedge.net.     3366    IN      A       81.52.251.5
    n3b.akamaiedge.net.     1566    IN      A       81.52.251.9
    n2b.akamaiedge.net.     3366    IN      A       80.239.234.150
    n6b.akamaiedge.net.     1566    IN      A       81.52.251.18
    
    ;; Query time: 74 msec
    ;; SERVER: 212.94.162.33#53(212.94.162.33)
    ;; WHEN: Mon May 24 19:19:22 2010
    ;; MSG SIZE  rcvd: 442

    Sous toute réserve, il semble bien que le fait de répondre aux requêtes de n'importe quel client ne corresponde pas aux bonnes pratiques sur la configuration du service DNS de nos jours.

    Dans le cadre de ces travaux pratiques, on veillera donc à n'autoriser les requêtes récursives qu'aux clients appartenant aux réseaux définis dans le plan d'adressage IP de l'énoncé.

La requête directe de transfert de zone permet de valider les autorisations d'échanges entre le serveur primaire et les autres serveurs ayant autorité sur la même zone.

Dans l'exemple de requête ci-dessous on interroge le serveur primaire à partir du serveur secondaire.

# dig @ns.stri.lab stri.lab axfr

; <<>> DiG 9.7.0-P1 <<>> @ns.stri.lab stri.lab axfr
; (1 server found)
;; global options: +cmd
stri.lab.               60      IN      SOA     stri.lab. root.stri.lab. 2010052401 20 5 420 60
stri.lab.               60      IN      TXT     "Training Lab"
stri.lab.               60      IN      MX      10 smtp.stri.lab.
stri.lab.               60      IN      NS      clnt.stri.lab.
stri.lab.               60      IN      NS      srvr.stri.lab.
clnt.stri.lab.          60      IN      A       192.200.0.4
ldap.stri.lab.          60      IN      A       192.200.0.12
nfs.stri.lab.           60      IN      A       192.200.0.11
ns1.stri.lab.           60      IN      CNAME   srvr.stri.lab.
ns2.stri.lab.           60      IN      CNAME   clnt.stri.lab.
rtr.stri.lab.           60      IN      A       192.200.0.1
smtp.stri.lab.          60      IN      A       192.200.0.10
srvr.stri.lab.          60      IN      A       192.200.0.3
stri.lab.               60      IN      SOA     stri.lab. root.stri.lab. 2010052401 20 5 420 60
;; Query time: 2 msec
;; SERVER: 192.200.0.3#53(192.200.0.3)
;; WHEN: Mon May 24 17:51:00 2010
;; XFR size: 14 records (messages 1, bytes 332)

Pour éviter une «recensement trop facile» de l'identité des hôtes d'une zone, il est essentiel de n'autoriser ces requêtes de transfert qu'entre serveurs DNS. Cette configuration du contrôle d'accès est présentée dans la Section 8, « Sécurisation de premier niveau ».