web-dev-qa-db-fra.com

Pourquoi l'instance de mise en cache locale de transfert uniquement interroge les serveurs de zone «racine»?

Je configure un serveur DNS de transfert local uniquement (bind9). Ont la configuration suivante:

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

    recursion yes; /* So that server could answer queries about domains its is not authoritative for. */
    allow-query { homeclients; };

    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    forward only;

    dnssec-enable yes;
    dnssec-validation yes;

    auth-nxdomain no;    # conform to RFC1035
    listen-on port 53 {
        127.0.0.1;
        192.168.1.33;
    };
    listen-on-v6 { any; };
};

Mais quand je fais:

Dig @127.0.0.1 ubuntu.com +trace

Je reçois:

; (1 server found)
;; global options: +cmd
.           3600000 IN  NS  J.ROOT-SERVERS.NET.
...
.           3600000 IN  NS  K.ROOT-SERVERS.NET.
;; Received 811 bytes from 127.0.0.1#53(127.0.0.1) in 0 ms

ubuntu.com.     3600    IN  A   91.189.94.40
;; Received 55 bytes from 192.33.4.12#53(C.ROOT-SERVERS.NET) in 1 ms

Dig obtient ses informations de l'instance locale bind qui devrait, selon ma configuration, transmettre toutes les requêtes aux serveurs DNS de Google. Mais il demande aussi des serveurs root ...

Pourquoi le serveur DNS de transfert uniquement demande des serveurs 'root'? Merci.

1
Bulat M.

Je pense que vous ne comprenez pas comment le mode de trace de Dig fonctionne réellement. En regardant la page de manuel de Dig, vous obtenez les informations suivantes:

+[no]trace
  Toggle tracing of the delegation path from the root name servers
  for the name being looked up. Tracing is disabled by default. When
  tracing is enabled, Dig makes iterative queries to resolve the name
  being looked up. It will follow referrals from the root servers,
  showing the answer from each server that was used to resolve the
  lookup.

  If @server is also specified, it affects only the initial query for
  the root zone name servers.

Surtout la dernière partie montre clairement que Dig +trace @server interrogera le serveur sur les serveurs de noms racine, puis prendra le relais et itérera lui-même les serveurs de noms du niveau suivant.

Cependant, je comprends votre question - je devais le rechercher moi-même;)

2
user3549497