如何找到冲突DNS记录的来源?
当前回答
我发现最好的方法是总是添加+trace选项:
dig SOA +trace stackoverflow.com
它也适用于托管在不同提供者中的递归CNAME。trace隐含+norecurse,因此结果只针对您指定的域。
其他回答
你会想要一个给定域名的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. conf。Domaincontrol是stackoverflow.com的主要名称服务器。
在输出的最后,列出了所有授权服务器,包括给定域的备份服务器。
一个简单的方法是使用在线域名工具。我最喜欢的是Domain Tools(以前是whois.sc)。我不确定他们是否可以解决冲突的DNS记录。此处以stackoverflow.com的DNS服务器为例
NS51.DOMAINCONTROL.COM
NS52.DOMAINCONTROL.COM
坐了一*那晚尼克斯:
$ dig -t ns <domain name>
你可以用"host"命令找到一个域的命名服务器:
[davidp@supernova:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.
不幸的是,大多数这些工具只返回实际名称服务器本身提供的NS记录。为了更准确地确定哪个域名服务器实际上负责一个域名,你必须使用“whois”并检查那里列出的域名,或者使用“dig [domain] NS @[根名称服务器]”并递归运行,直到你得到名称服务器列表……
我希望有一个简单的命令行,您可以运行它来可靠地以一致的格式获得那个结果,而不仅仅是名称服务器本身给出的结果。这对我来说的目的是能够查询大约330个域名,我管理,所以我可以确定确切的名称服务器每个域名指向(根据他们的注册商设置)。
有人知道在*nix上使用“dig”或“host”或其他命令吗?