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


当前回答

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

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

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

其他回答

SOA记录出现在层次结构更上层的所有服务器上,域所有者对这些服务器没有控制权,它们实际上都指向域所有者控制下的一个权威名称服务器。

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

您需要查询顶级域的授权服务器,以获得给定子域的可靠SOA信息。

(关于哪个服务器是授权的,可以从根名称服务器查询哪个TLD的信息)。

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

这在linux和dig中比在nslookup/windows中工作得更好/可靠得多。

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

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

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

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

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM

我们已经构建了一个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

坐了一*那晚尼克斯:

$ dig -t ns <domain name>