如何找到冲突DNS记录的来源?


当前回答

你应该在谷歌上搜索的词是“权威的”,而不是“权威的”。

在Linux或Mac上,您可以使用命令whois, dig, host, nslookup或其他几个。nslookup也可以在Windows上工作。

一个例子:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

至于额外学分:是的,这是可能的。


aryeh是绝对错误的,因为他的建议通常只会给你IP地址作为主机名。如果你使用dig,你必须查找NS记录,像这样:

dig ns stackoverflow.com

请记住,这可能会询问您的本地DNS服务器,因此可能会给出错误或过时的答案,它在其缓存中。

其他回答

一个简单的方法是使用在线域名工具。我最喜欢的是Domain Tools(以前是whois.sc)。我不确定他们是否可以解决冲突的DNS记录。此处以stackoverflow.com的DNS服务器为例

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

你在你的问题中使用了单数,但通常有几个权威的名称服务器,RFC 1034建议至少有两个。

除非你指的是“主名称服务器”而不是“权威名称服务器”。辅助名称服务器是权威的。

在Unix上查找某个域的名称服务器:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

要找出被列为主服务器的服务器(“主”的概念目前相当模糊,通常没有好的答案):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

为了检查名称服务器之间的差异,我倾向于使用旧的check_soa工具,Liu和Albitz在“DNS和BIND”一书中描述过(O'Reilly编辑)。源代码可以在http://examples.oreilly.com/dns5/上找到

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

在这里,两个权威名称服务器具有相同的序列号。好。

你应该在谷歌上搜索的词是“权威的”,而不是“权威的”。

在Linux或Mac上,您可以使用命令whois, dig, host, nslookup或其他几个。nslookup也可以在Windows上工作。

一个例子:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

至于额外学分:是的,这是可能的。


aryeh是绝对错误的,因为他的建议通常只会给你IP地址作为主机名。如果你使用dig,你必须查找NS记录,像这样:

dig ns stackoverflow.com

请记住,这可能会询问您的本地DNS服务器,因此可能会给出错误或过时的答案,它在其缓存中。

我发现对于一些领域,上面的答案不工作。我发现的最快的方法是首先检查NS记录。如果不存在,请检查SOA记录。如果不存在,则使用dig递归解析名称并获取返回的最后一个NS记录。一个符合这一点的例子是analyticsdcs.ccs.mcafee.com。

检查NS记录

host -t NS analyticsdcs.ccs.mcafee.com。

如果没有发现NS,请检查SOA记录

host -t SOA analyticsdcs.ccs.mcafee.com。

如果既不是NS也不是SOA,则执行完全递归并返回最后一个NS

挖掘+跟踪analyticsdcs.ccs.mcafee.com。| grep -w 'IN[[:space:]]*NS' | tail -1

测试名称服务器是否返回

主机analyticsdcs.ccs.mcafee.com。gtm2.mcafee.com。

不幸的是,大多数这些工具只返回实际名称服务器本身提供的NS记录。为了更准确地确定哪个域名服务器实际上负责一个域名,你必须使用“whois”并检查那里列出的域名,或者使用“dig [domain] NS @[根名称服务器]”并递归运行,直到你得到名称服务器列表……

我希望有一个简单的命令行,您可以运行它来可靠地以一致的格式获得那个结果,而不仅仅是名称服务器本身给出的结果。这对我来说的目的是能够查询大约330个域名,我管理,所以我可以确定确切的名称服务器每个域名指向(根据他们的注册商设置)。

有人知道在*nix上使用“dig”或“host”或其他命令吗?