DNS根服务器为什么不回答?

DNS根服务器为什么不回答?

如果我尝试使用 查询根服务器dig,我将永远得不到答复。

例如输出dig @b.root-servers.net www.ubuntu.com

;<<>> DiG 9.8.1-P1 <<>> @b.root-servers.net www.ubuntu.com

;(找到 1 个服务器)

;; 全局选项: +cmd

;;连接超时;无法访问服务器

但如果我查询其他服务器(我的 ISP 的服务器或 8.8.8.8),它们会正确回答。为什么?

PS 使用 Wireshark 我可以看到对根服务器正确 IP 地址的传出查询,但没有来自同一 IP 的传入数据包。

答案1

听起来你的互联网提供商必须阻止对根名称服务器的访问。他们显然不会阻止对自己解析器的访问,并且他们可能会豁免其他几个流行的外部解析器,如 Google Public DNS,但可能会阻止所有domain端口访问。

这种现象常见吗? 视情况而定。我认为,这种封锁在大学和企业网络中比较常见,但我认为,在普通住宅提供商中,这种情况应该不常见。(smtp不过,大多数提供商都会封锁传出端口。)

为什么有人会阻止外部名称服务器? 这可能与各种中间人攻击有关,如果合法的名称服务器被替换为受感染的名称服务器,则可能发生此类攻击。为了避免任何此类攻击并减少用户投诉,大多数提供商通常会将所有domain-port 请求重定向到他们自己的服务器:当他们这样做时,您无法再运行自己的递归服务器或进行dig +trace故障排除,但至少您不必更改 DNS 设置。

无论如何,您的命令本身确实没有任何问题:您应该收到如下所示的回复,这将使您可以在手动递归路径上对给定名称的解析进行另一个请求。

# dig @b.root-servers.net www.ubuntu.com

; <<>> DiG 9.7.3 <<>> @b.root-servers.net www.ubuntu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20828
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 14
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.ubuntu.com.                        IN      A

;; AUTHORITY SECTION:
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net.     172800  IN      A       192.5.6.30
b.gtld-servers.net.     172800  IN      A       192.33.14.30
c.gtld-servers.net.     172800  IN      A       192.26.92.30
d.gtld-servers.net.     172800  IN      A       192.31.80.30
e.gtld-servers.net.     172800  IN      A       192.12.94.30
f.gtld-servers.net.     172800  IN      A       192.35.51.30
g.gtld-servers.net.     172800  IN      A       192.42.93.30
h.gtld-servers.net.     172800  IN      A       192.54.112.30
i.gtld-servers.net.     172800  IN      A       192.43.172.30
j.gtld-servers.net.     172800  IN      A       192.48.79.30
k.gtld-servers.net.     172800  IN      A       192.52.178.30
l.gtld-servers.net.     172800  IN      A       192.41.162.30
m.gtld-servers.net.     172800  IN      A       192.55.83.30
a.gtld-servers.net.     172800  IN      AAAA    2001:503:a83e::2:30

;; Query time: 12 msec
;; SERVER: 192.228.79.201#53(192.228.79.201)
;; WHEN: Sat Jan 12 22:52:12 2013
;; MSG SIZE  rcvd: 492

答案2

根服务器应该回答您的问题,并回答您可以在哪里找到 .com。b.root-servers.net 没有回答的原因可能是您的根提示文件已过期。请尝试更新此文件。

相关内容