我不太清楚这个非权威的答案是如何给出的。
对于某些域我得到了这样的结果:
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 时,非权威 NS 结果是缓存服务器(ISP)的 NS 还是权威服务器的 NS?
然后我用一个叫 simpledns 的在线工具检查了一下,dnsX.name-services.com ns 似乎是权威答案 NS。为什么它会显示在非权威答案中?如果他们实际上是权威 NS,是否可以显示非权威服务器 NS?
谢谢
答案1
非权威意味着它是来自某个服务器的缓存结果
是的。权威答案仅来自直接托管数据的服务器;非权威答案来自缓存/代理。
可能是我的 ISP
不。在您的示例中,缓存服务器的地址是8.8.8.8
(如上程序的输出所示);它是一个 Google 公共 DNS 服务器。
在 nslookup 中,您可以使用server
命令将查询定向到其他服务器,无论是缓存服务器还是权威服务器。
即使我使用 querytype=soa,权威答案也是空白。为什么会发生这种情况?
SOA 记录在这方面并不特殊。它们与区域的其他部分由相同的服务器托管。如果通过缓存/代理服务器查询它们,则该响应不具有权威性,这是因为查询的位置,而不是因为记录类型。
要获得权威答案,您需要将查询发送到该域的权威服务器。您收到的 NS 响应会告诉您哪些服务器是权威服务器。
我不太确定,当我查询NS时,Non-Authoritative NS的结果是缓存服务器(ISP)的NS还是权威服务器的NS?
缓存服务器本身永远不会成为结果的一部分;它为您提供未更改的数据。因此,NS 记录与缓存服务器本身从某些权威服务器获得的记录相同(即它们来自实际域,而不是由缓存自动生成的),并且它们也指向权威服务器。
如果他们实际上是权威的 NS,那么是否可以显示非权威服务器 NS?
域中的 NS 记录始终指向其域的权威服务器。这就是它们的真正用途。
域名通常不会有指定的非权威服务器,因为如果他们有一个,那么这样的服务器在定义上就会变得有点权威......“非权威”响应只是意味着其他一切,即网络周围的任何缓存 DNS 服务器产生的响应。
答案2
它告诉您,您请求的服务器 8.8.8.8 不具有该域的权限。因此,您必须向 name-services.com 询问答案。
也可以看看DNS——NSLOOKUP 非权威答案是什么意思?在 ServerFault 上。