【问题标题】:How does my ISP DNS server contact the root DNS server?我的 ISP DNS 服务器如何联系根 DNS 服务器?
【发布时间】:2018-10-29 09:24:04
【问题描述】:

据我了解,当我的计算机执行 DNS 请求时,它会执行以下操作:

首先,我的计算机将 DNS 请求发送到其默认的 dns 服务器(在我的例子中是我的 ISP DNS)。 然后我的 ISP DNS 服务器向“根节点 DNS 服务器”发送请求。 我的问题是最后一点。

  • ISP DNS 服务器如何联系根节点(使用 IP?(我听说 DNS 根节点的 IP 是秘密的(为了避免攻击/垃圾邮件))。

  • 根节点DNS使用哪个端口

  • 我可以直接从我的计算机联系根 DNS 吗? (如果是怎么办?)

非常感谢!

【问题讨论】:

标签: dns ip


【解决方案1】:

世界上的每个递归域名服务器都附带一个预配置的根区域,其中包含根域名服务器列表及其 IPv4+IPv6 地址。 通过启动时称为“启动”的过程,每个递归名称服务器将连接其中一个以查询当前列表,以便它可以更新其根服务器列表。

所有这些都不会以任何方式隐藏,否则 DNS 将无法工作。

每个名称服务器(递归或权威)都使用端口 53,用于 UDP 和 TCP 查询。

您当然可以直接联系根域名服务器,但根据您的问题,我相信您对这可能有什么目的存在误解。 DNS 是一棵树,如果您联系根域名服务器,它只能回复有关其下方级别的数据,即 TLD 列表,您将无法在树下获得有关域的数据。

一些例子:

获取当前根域名服务器列表

$ dig . NS

; <<>> DiG 9.12.0 <<>> . NS
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62572
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: c0ea66cf097962ab
;; QUESTION SECTION:
;.          IN NS

;; QUERY SIZE: 40

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62572
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.          IN NS

;; ANSWER SECTION:
.           264162 IN NS a.root-servers.net.
.           264162 IN NS d.root-servers.net.
.           264162 IN NS m.root-servers.net.
.           264162 IN NS j.root-servers.net.
.           264162 IN NS e.root-servers.net.
.           264162 IN NS f.root-servers.net.
.           264162 IN NS l.root-servers.net.
.           264162 IN NS k.root-servers.net.
.           264162 IN NS g.root-servers.net.
.           264162 IN NS h.root-servers.net.
.           264162 IN NS b.root-servers.net.
.           264162 IN NS i.root-servers.net.
.           264162 IN NS c.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net. 600270 IN A 198.41.0.4
a.root-servers.net. 168267 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 600268 IN A 199.9.14.201
b.root-servers.net. 168267 IN AAAA 2001:500:200::b
c.root-servers.net. 600270 IN A 192.33.4.12
c.root-servers.net. 168267 IN AAAA 2001:500:2::c
d.root-servers.net. 600269 IN A 199.7.91.13
d.root-servers.net. 168267 IN AAAA 2001:500:2d::d
e.root-servers.net. 600268 IN A 192.203.230.10
e.root-servers.net. 168267 IN AAAA 2001:500:a8::e
f.root-servers.net. 600268 IN A 192.5.5.241
f.root-servers.net. 168267 IN AAAA 2001:500:2f::f
g.root-servers.net. 600268 IN A 192.112.36.4
g.root-servers.net. 168267 IN AAAA 2001:500:12::d0d
h.root-servers.net. 600270 IN A 198.97.190.53
h.root-servers.net. 168267 IN AAAA 2001:500:1::53
i.root-servers.net. 600270 IN A 192.36.148.17
i.root-servers.net. 168267 IN AAAA 2001:7fe::53
j.root-servers.net. 600268 IN A 192.58.128.30
j.root-servers.net. 168267 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 600268 IN A 193.0.14.129
k.root-servers.net. 168267 IN AAAA 2001:7fd::1
l.root-servers.net. 600268 IN A 199.7.83.42
l.root-servers.net. 168267 IN AAAA 2001:500:9f::42
m.root-servers.net. 600268 IN A 202.12.27.33
m.root-servers.net. 168267 IN AAAA 2001:dc3::35

;; Query time: 1 msec
;; SERVER: 192.168.10.229#53(192.168.10.229)
;; WHEN: Mon Oct 29 10:19:08 EST 2018
;; MSG SIZE  rcvd: 811

向根域名服务器询问 TLD 的数据(是的,red 是 TLD)

$ dig @g.root-servers.net red. NS +nocookie

; <<>> DiG 9.12.0 <<>> @g.root-servers.net red. NS +nocookie
; (1 server found)
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18270
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;red.           IN NS

;; QUERY SIZE: 32

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18270
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;red.           IN NS

;; AUTHORITY SECTION:
red.            172800 IN NS b0.nic.red.
red.            172800 IN NS c0.nic.red.
red.            172800 IN NS a2.nic.red.
red.            172800 IN NS a0.nic.red.

;; ADDITIONAL SECTION:
a0.nic.red.     172800 IN A 65.22.36.25
a2.nic.red.     172800 IN A 65.22.39.25
b0.nic.red.     172800 IN A 65.22.37.25
c0.nic.red.     172800 IN A 65.22.38.25
a0.nic.red.     172800 IN AAAA 2a01:8840:26::25
a2.nic.red.     172800 IN AAAA 2a01:8840:29::25
b0.nic.red.     172800 IN AAAA 2a01:8840:27::25
c0.nic.red.     172800 IN AAAA 2a01:8840:28::25

;; Query time: 104 msec
;; SERVER: 192.112.36.4#53(192.112.36.4)
;; WHEN: Mon Oct 29 10:20:35 EST 2018
;; MSG SIZE  rcvd: 280

向根名称服务器询问树下的任何其他内容(没有预期的直接回复,只是联系其他名称服务器以进行进一步递归查询的数据)

$ dig @g.root-servers.net www.stackoverflow.com. NS +nocookie

; <<>> DiG 9.12.0 <<>> @g.root-servers.net www.stackoverflow.com. NS +nocookie
; (1 server found)
;; global options: +cmd
;; Sending:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8649
;; flags: rd ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.stackoverflow.com. IN NS

;; QUERY SIZE: 50

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8649
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 27
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.stackoverflow.com. IN NS

;; AUTHORITY SECTION:
com.            172800 IN NS j.gtld-servers.net.
com.            172800 IN NS g.gtld-servers.net.
com.            172800 IN NS a.gtld-servers.net.
com.            172800 IN NS d.gtld-servers.net.
com.            172800 IN NS m.gtld-servers.net.
com.            172800 IN NS e.gtld-servers.net.
com.            172800 IN NS i.gtld-servers.net.
com.            172800 IN NS f.gtld-servers.net.
com.            172800 IN NS k.gtld-servers.net.
com.            172800 IN NS l.gtld-servers.net.
com.            172800 IN NS b.gtld-servers.net.
com.            172800 IN NS c.gtld-servers.net.
com.            172800 IN NS h.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
b.gtld-servers.net. 172800 IN AAAA 2001:503:231d::2:30
c.gtld-servers.net. 172800 IN AAAA 2001:503:83eb::30
d.gtld-servers.net. 172800 IN AAAA 2001:500:856e::30
e.gtld-servers.net. 172800 IN AAAA 2001:502:1ca1::30
f.gtld-servers.net. 172800 IN AAAA 2001:503:d414::30
g.gtld-servers.net. 172800 IN AAAA 2001:503:eea3::30
h.gtld-servers.net. 172800 IN AAAA 2001:502:8cc::30
i.gtld-servers.net. 172800 IN AAAA 2001:503:39c1::30
j.gtld-servers.net. 172800 IN AAAA 2001:502:7094::30
k.gtld-servers.net. 172800 IN AAAA 2001:503:d2d::30
l.gtld-servers.net. 172800 IN AAAA 2001:500:d937::30
m.gtld-servers.net. 172800 IN AAAA 2001:501:b1f9::30

;; Query time: 105 msec
;; SERVER: 192.112.36.4#53(192.112.36.4)
;; WHEN: Mon Oct 29 10:21:50 EST 2018
;; MSG SIZE  rcvd: 846

【讨论】:

  • 好的,非常感谢您的回答。我还有一个问题。如果根 DNS 的 13 个 IP 是公共的。那么根 DNS 是如何保护自己免受 DDOS 或其他大规模攻击的呢?
  • 每个 IP 都是任播的,最终您实际上拥有 900 多个位置。处理它们的结构也有巨大的管道。而 DDOS 他们一无所获,过去已经证明了这一点:他们只有 TLD 列表,而且到处都被大量缓存。您可以完全放松其中的一些,而不会让任何用户感受到日常浏览或电子邮件活动的不同。查看root-servers.org 了解更多详细信息和教育材料。
  • 好的,非常感谢您的宝贵时间和详细的回答。
猜你喜欢
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多