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


当前回答

坐了一*那晚尼克斯:

$ dig -t ns <domain name>

其他回答

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

域名查询服务stackoverflow.com

您将得到以下响应。

...这里删除了文本…

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

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

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

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

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

我们已经构建了一个dns查找工具,可以在一个请求中为您提供域的权威名称服务器及其常见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

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

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

你可以用"host"命令找到一个域的命名服务器:

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