-1

我试图通过 +trace 选项全面了解 DNS 解析过程的含义(以使解析器模拟 NS 默认服务器角色)。我从一个教学示例中获取了以下输出,然后添加了一些在不同上下文中发现的行(我确信这是一种可能的情况)。我添加的这些行是输出的最后 2 行(关于 XXX.mit.edu 和 WWW.YYY.ZZZ 的 NS)。

dig www.mit.edu +trace

; <<>> DiG 9.2.4 <<>> www.mit.edu +trace

;; global options: printcmd

.       2788 IN NS b.root-servers.net.
.       2788 IN NS c.root-servers.net.

.       2788 IN NS d.root-servers.net.
.       2788 IN NS e.root-servers.net.
.       2788 IN NS f.root-servers.net.
.       2788 IN NS g.root-servers.net.
.       2788 IN NS h.root-servers.net.
.       2788 IN NS i.root-servers.net.
.       2788 IN NS j.root-servers.net.
.       2788 IN NS k.root-servers.net.
.       2788 IN NS l.root-servers.net.
.       2788 IN NS m.root-servers.net.
.       2788 IN NS a.root-servers.net.
;; Received 276 bytes from 193.204.161.133#53(193.204.161.133) in 1 ms

edu.        172800 IN NS A3.NSTLD.COM.
edu.        172800 IN NS C3.NSTLD.COM.
edu.        172800 IN NS D3.NSTLD.COM.
edu.        172800 IN NS E3.NSTLD.COM.
edu.        172800 IN NS G3.NSTLD.COM.
edu.        172800 IN NS H3.NSTLD.COM.
edu.        172800 IN NS L3.NSTLD.COM.
edu.        172800 IN NS M3.NSTLD.COM.
;; Received 302 bytes from 192.228.79.201#53(b.root-servers.net) in 194 ms

mit.edu.    172800 IN NS STRAWB.mit.edu.
mit.edu.    172800 IN NS BITSY.mit.edu.
mit.edu.    172800 IN NS W20NS.mit.edu.
;; Received 138 bytes from 192.5.6.32#53(A3.NSTLD.COM) in 182 ms

www.mit.edu.    60 IN A 18.7.22.83
mit.edu.    21600 IN NS BITSY.mit.edu.
mit.edu.    21600 IN NS STRAWB.mit.edu.
mit.edu.    21600 IN NS W20NS.mit.edu.
mit.edu.    21600 IN NS XXX.mit.edu
mit.edu.    21600 IN NS WWW.YYY.ZZZ
;; Received 154 bytes from 18.71.0.151#53(STRAWB.mit.edu) in 150 ms

我理解在这些行之前发生的一切:“。” 信息由根名称服务器保存。根名称服务器列表由 193.204.161.133 给出,这是我的默认名称服务器。“edu”信息由“第二块”(XX.MSTLD.COM)中的名称服务器提供。这是由根名称服务器提供的信息。“mit.edu”信息由 STRAWB、BITSY 和 W20NS(mit.edu 的权威 NS)提供。这也很好。那么,在“最后一块”中:“XXX.mit.edu”和“WWW.YYY.ZZZ”是什么意思?他们也是 mit.edu 的自治 NS,但为什么之前没有将它们与其他 3 个自治 NS 一起列出?就像只有 STRAWB.mit.edu 知道有更多的 NS 包含与 mit.edu 区域相关的信息。

我希望我的问题很清楚。

4

1 回答 1

1

挖掘跟踪是在解析域名过程中发生的所有对话的列表。对话是这样的

  1. 最初需要一个根名称服务器的地址来开始查找地址,这些通常是从缓存中获取的,因为这个请求需要 1 毫秒,我们假设是这种情况。
  2. 为 .edu 查询根名称服务器。名称服务器。第二组结果——edu。答案就是这些。
  3. .edu 之一。向服务器查询 mit.edu。名称服务器。这些结果是 mit.edu。与 STRAWB、BITSY 和 W20NS
  4. 最终答案来自 18.71.0.151#53(STRAWB.mit.edu) 并且是最重要的响应www.mit.edu要回答查询,这是唯一需要的记录。
  5. 答案下方的记录是附加记录,它们基本上是有用的名称服务器。它为您提供了要放入缓存的域的所有权威名称服务器的列表,以便下次您需要查找 mit.edu 域时,您无需进行完整查找。(并将拥有完整的名称服务器集)

有关更多信息,请阅读 RFC 1035域名 - 实施和规范(搜索“附加”)

于 2016-01-25T00:27:52.630 回答