我不太清楚非权威答案是如何给出的。
对于某些域,我得到了这种结果:
root@localhost:~# nslookup
> set query=ns
> foo.org
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
foo.org nameserver = dns5.name-services.com.
foo.org nameserver = dns3.name-services.com.
foo.org nameserver = dns4.name-services.com.
foo.org nameserver = dns2.name-services.com.
foo.org nameserver = dns1.name-services.com.
Authoritative answers can be found from:
即使当我使用 querytype=soa 时,权威答案也是空白的。为什么会这样?
据我了解,非权威意味着它是来自某些服务器的缓存结果,可能是我的 ISP。我不确定,当我查询 NS 时,Non-Authoritative NS 结果是缓存服务器 (ISP) 的 NS 还是权威服务器?
然后我用一个叫simpledns的在线工具查了一下,dnsX.name-services.com ns好像是Authoritative Answer NS。为什么它显示在非权威答案中?如果他们真的是权威NS,是否可以显示非权威服务器NS?
谢谢
是的。权威答案仅来自直接托管数据的服务器;非权威答案来自缓存/代理。
不。在您的示例中,缓存服务器的地址是
8.8.8.8
(如上面程序输出中所示);它是一个谷歌公共 DNS 服务器。在 nslookup 中,您可以使用该
server
命令将查询定向到其他服务器,无论是缓存服务器还是权威服务器。SOA 记录在这方面并不特殊。它们与区域的其余部分由相同的服务器托管。如果通过缓存/代理服务器查询它们,则该响应是非权威的,因为它是在何处查询的,而不是因为记录类型。
要获得权威答案,您需要将查询发送到对该域具有权威性的服务器。您收到的 NS 响应会告诉您哪些服务器是。
缓存服务器本身永远不是结果的一部分;它为您提供未更改的数据。因此 NS 记录与缓存服务器本身从某个权威服务器获得的记录相同(即它们来自实际域,并且不是由缓存自动生成的),并且它们也指向权威服务器。
域中的 NS 记录始终指向其域的权威服务器。这就是他们的真正目的。
域通常没有指定的非权威服务器,因为如果他们有一个,那么根据定义,这样的服务器就会有点权威......“非权威”响应意味着其他一切,即任何缓存 DNS 服务器产生的响应绕网。
它告诉您 8.8.8.8(您询问的服务器)对该域不具有权威性。接下来,您必须向 name-services.com 寻求答案。
另请参阅DNS - NSLOOKUP 非权威答案的含义是什么?在服务器故障上。