这是我的问题:
dig +trace忽略胶水logging? dig还是dig +trace ,还是recursion名称服务器也“手动validation”它接收的粘合logging? 这是更长的解释:
这是提示这些问题的DNS事务的完整捕获 。
我正在使用dig + trace来跟踪DNS过程,为www.pizza.com提供简单的Aloggingparsing。 因为,预计,第一个请求是我的DNS服务器,寻找根名称服务器(数据包#1)。 然后我的DNS服务器响应所有13个名称服务器(数据包#2)的列表:
请注意,在数据包#2中,不包含附加logging。 这提示我的客户端查找每个提供的根名称服务器的Alogging。 在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:
接下来是我的问题围绕着什么。 即使我的客户收到了与.com TLD名称服务器相关的Alogging。 它仍然决定为每个.com TLD名称服务器(数据包31-56)做一个Alogging请求:
当我的客户向.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名称服务器如何行事。