我想找到所有为DNS区域服务的名称服务器(假设是google.com(。使用$dig
,我尝试了两种不同的查询:
$dig +trace google.com <type>
结果如下所示:
挖掘+跟踪
我注意到在查询答案的底部附近有四条NS记录,它们被分组在一起。
$dig google.com ANY
结果如下所示:
挖掘任何
总共有四条NS记录,与第一个答案中的记录完全相同。
有没有其他方法可以获得所有的名称服务器?
我想找到所有为DNS区域服务的名称服务器(假设是google.com(。
向任何父名称服务器询问有关委派的详细信息:
$ dig com. NS +short|head -1
j.gtld-servers.net.
$ dig @j.gtld-servers.net. google.com. NS +noall +auth
google.com. 2d IN NS ns2.google.com.
google.com. 2d IN NS ns1.google.com.
google.com. 2d IN NS ns3.google.com.
google.com. 2d IN NS ns4.google.com.
DNS就是这样工作和设计的:它使用NS
记录类型的委派。
但要注意两件事:
可能会发生蹩脚的委派:您可以/应该询问任何被委派的名称服务器,询问他们认为相关的名称服务器是什么,并处理差异(不应该有,但令人惊讶的是,在许多区域中都有(
结果是集合,而不是列表,所以不要期望任何稳定的顺序
dig-google.com任何
绝对不要使用ANY
。不管人们怎么想,它都没有ALL
的含义,而且大多被认为是过时的(参见https://www.rfc-editor.org/rfc/rfc8482)