如何找到域名的权威名称服务器?

时间:2008-09-01 14:57:17

标签: dns

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

12 个答案:

答案 0 :(得分:391)

您需要给定域名的SOA(权限开始)记录,这就是您使用通用的 nslookup 命令行工具完成它的方法:

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

来源(或Windows上的主要名称服务器)行告诉您 ns51.domaincontrol 的主要名称服务器stackoverflow.com

在输出结束时列出所有权威服务器,包括给定域的备份服务器。

答案 1 :(得分:162)

您在问题中使用了单数,但通常有几个权威名称服务器,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& Sons; 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

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

答案 2 :(得分:38)

On * nix:

$ dig -t ns <domain name>

答案 3 :(得分:17)

我有一个DNS propagation tool旨在回答这类问题。

来源根据AGPLv3发布。

(是的,此时界面相当基本:))

您还可以使用“host”命令找到域的名称服务器:

[davidp@supernova:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.

答案 4 :(得分:7)

我发现它总是添加+ trace选项的最佳方式:

dig SOA +trace stackoverflow.com

它也适用于托管在不同提供程序中的递归CNAME。 + trace trace imply + norecurse,因此结果仅适用于您指定的域。

答案 5 :(得分:6)

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

在Linux或Mac上,您可以使用whoisdighostnslookup或其他几项命令。 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服务器,因此可能会在缓存中提供错误或过时的答案。

答案 6 :(得分:2)

我们已经构建了一个dns lookup tool,可以在一个请求中为您提供域名的权威名称服务器及其常见的dns记录。

示例:https://www.misk.com/tools/#dns/stackoverflow.com

我们的工具通过在根名称服务器上执行实时(未缓存)的dns查找然后跟随名称服务器引用来找到权威的名称服务器,直到我们到达权威的名称服务器。这与dns解析器用于获取权威答案的逻辑相同。在每个查询上选择(并标识)随机权威名称服务器,允许您通过执行多个请求来查找冲突的DNS记录。

您还可以通过单击上面示例中dns查找结果底部的“权威名称服务器”来查看名称服务器委派路径。

示例:https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net

答案 7 :(得分:1)

您可以使用whois服务。在类似UNIX的操作系统上,您将执行以下命令。或者,您可以在网站http://www.internic.net/whois.html上进行此操作。

whois stackoverflow.com

您会收到以下回复。

...此处删除了文字...

按列出的顺序排列的域服务器: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM

您可以使用nslookup或dig来查找有关给定域的记录的更多信息。这可能有助于您解决所描述的冲突。

答案 8 :(得分:1)

我发现对于某些域,以上答案无效。我发现最快的方法是首先检查NS记录。如果不存在,请检查SOA记录。如果不存在,请使用dig递归解析名称,并获取最后返回的NS记录。合适的例子是analyticsdcs.ccs.mcafee.com.

  1. 检查NS记录

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

  1. 如果未找到NS,请检查SOA记录

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

  1. 如果NS或SOA都不行,请执行完全递归并获取最后返回的NS

dig +trace analyticsdcs.ccs.mcafee.com. | grep -w 'IN[[:space:]]*NS' | tail -1

  1. 测试返回的名称服务器是否有效

host analyticsdcs.ccs.mcafee.com. gtm2.mcafee.com.

答案 9 :(得分:0)

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

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

任何人都知道在* nix上使用“dig”或“host”或其他内容的命令?

答案 10 :(得分:0)

SOA记录存在于层次结构上的所有服务器上,域所有者无法控制,并且它们实际上都指向域所有者控制下的一个权威名称服务器。

另一方面,权威服务器本身的SOA记录并非严格需要解析该域,并且可能包含虚假信息(或隐藏的主服务器或其他受限制的服务器),不应依赖它来确定给定域的权威名称服务器。

您需要查询对顶级域具有权威性的服务器,以获取给定子域的可靠SOA信息。

(有关哪个服务器具有权威性,可以从根名称服务器查询哪个TLD的信息)。

当您从TLD权威服务器获得有关SOA的可靠信息时,您可以查询主要名称服务器本身的权威性(gTLD名称服务器上的SOA记录中的那个!)以获取任何其他NS记录,然后继续查看所有那些通过查询NS记录获得的名称服务器,查看任何其他特定记录是否存在任何不一致。

使用linux和dig比使用nslookup / windows更好/可靠。

答案 11 :(得分:-2)

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

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM