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.
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;)