为什么dig +跟踪似乎忽略了DNS粘贴logging?

这是我的问题:

  • 为什么dig +trace忽略胶水logging
  • 这种行为是特定于dig还是dig +trace ,还是recursion名称服务器也“手动validation”它接收的粘合logging?

这是更长的解释:

这是提示这些问题的DNS事务的完整捕获 。

我正在使用dig + trace来跟踪DNS过程,为www.pizza.com提供简单的Aloggingparsing。 因为,预计,第一个请求是我的DNS服务器,寻找根名称服务器(数据包#1)。 然后我的DNS服务器响应所有13个名称服务器(数据包#2)的列表:

数据包1和2

请注意,在数据包#2中,不包含附加logging。 这提示我的客户端查找每个提供的根名称服务器的Alogging。 在3到28的数据包中会发生什么情况:

数据包3  -  28

到目前为止,这是预期的。 但接下来它变得有趣。

数据包29是我的客户,向192.5.5.241(f.root-servers.net)发出请求,寻找www.pizza.com的Alogging。 显然,根NS不知道Alogging,所以提供.com TLD名称服务器的FQDN(a.gtld-servers.net,b.gtld-servers.net等)。 注意,F Root NS还提供了“附加logging”,这是与每个.com TLD名称服务器FQDN对应的Alogging:

数据包29-30

接下来是我的问题围绕着什么。 即使我的客户收到了与.com TLD名称服务器相关的Alogging。 它仍然决定为每个.com TLD名称服务器(数据包31-56)做一个Alogging请求:

数据包31-56

当我的客户向.com顶级域名(TLD)名称服务器查询www.pizza.com的Alogging并收到Pizza.com域的权威NSlogging时,同样的事情会发生一点(数据包57-66)。 .com TLD名称服务器提供胶水logging,但我的客户端仍然出去,手动parsing每个NS服务器的Alogging。

所以我的问题是:

  • 为什么dig +trace忽略胶水logging?
  • 这种行为是特定于dig还是dig +trace ,还是recursion名称服务器也“手动validation”它接收的粘合logging?

我正在使用这个版本的Dig:
DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1

并运行这个命令:
$ dig www.pizza.com +trace -4


编辑1:添加问题到顶部以便更容易理解我正在查询的内容


编辑2 : 这个问题是类似于我的,但不完全一样。 在这个问题上,@Andrew B证实了我看到的同样的行为:

+trace欺骗,并咨询本地parsing器获取下一跳名称服务器的IP地址,而不是咨询胶水。

但我的问题是具体为什么 dig +trace这样做? 有什么好处? 它试图提供什么? 看起来就像更多的工作一样,有时甚至会导致dig如何parsing地址以及实际的DNS如何parsing地址(如另一个问题所指出的)的不准确性。

另一个问题似乎回答了我的第二个问题,但是。 看起来这种忽略粘合logging的行为是特定于掘的,而不是“正常的”recursion名称服务器如何行事。