我有带有 BIND9 的 Ubuntu 12.04,仅作为缓存服务器工作(转发到 8.8.8.8)。
例如,当我使用时dig +norecurse @l.root-servers.net www.uniroma1.it
,我获得以下输出:
; <<>> DiG 9.8.1-P1 <<>> +norecurse @l.root-servers.net www.uniroma1.it
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached
使用 Wireshark 我发现发出的查询是正确的,但没有任何传入的答案。为什么?
PS 只需简单操作dig www.uniroma1.it
我就能得到正确的答案。
答案1
这是一个根名称服务器如何响应(或在本例中失败)查询的问题,而不是 dig 工具本身的问题。
对意大利辅助 DNS 服务器的以下查询将会做出适当的响应:
dig +norecurse @dns.nic.it www.uniroma1.it
使用以下命令向 Google 的 DNS 服务器之一发出查询:
dig +norecurse @8.8.8.8 www.uniroma1.it
我一下子想不起来主 DNS 服务器是如何针对单个查询进行设置的。这可能是一种安全措施,或是一种避免 DDOS 的措施,但目前我只是在猜测。希望这能有所帮助。
更新:请参阅第二条回应评论这个问题它对使用 dig 工具解释来自顶级名称服务器的响应给出了更好的解释。