对于某些域nslookup
,给我一个Non-authoritative answer
部分。这是什么意思?
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NXDOMAIN
header flags: response, want recursion, recursion avail.
questions = 1, answers = 0, authority records = 1, additional =
QUESTIONS:
www.example.com.SME, type = AAAA, class = IN
AUTHORITY RECORDS:
-> (root)
ttl = 1787 (29 mins 47 secs)
primary name server = a.root-servers.net
responsible mail addr = nstld.verisign-grs.com
------------
Non-authoritative answer:
------------
------------
Name: example.com
Address: 93.184.216.34
Aliases: www.example.com
基本上,这就是名字所说的。权威答案来自一个名称服务器,该名称服务器被认为是它返回记录的域的权威(您查找的域列表中的一个名称服务器),非权威答案来自其他任何地方(一个名称服务器不在您查找的域的列表中)。
它基本上是您正在查询的域的官方名称服务器和不是的名称服务器之间的区别。不权威的名称服务器正在从第二手(或第三手或第四手......)获得答案 - 只是从其他地方转发信息。
因此,例如,如果我
maps.google.com
现在执行 nslookup,我将从我配置的名称服务器之一获得响应。(来自我的 ISP 或我的域。)它会作为非权威返回,因为我的 ISP 的名称服务器和我自己的名称服务器都不在google.com
. 它们不是 Google 的名称服务器,因此它们不是创建 NS 记录的权威来源。Google 的权威名称服务器列表如下(来自 whois.internic.net)。
如果我将配置的 DNS 服务器更改为该列表中的其中一个,然后执行
nslookup
againstmaps.google.com
,我会得到权威的答复。这些服务器是 Google 域中有效名称和无效名称的权威(或来源)。所有其他名称服务器,非权威名称服务器,从某处的权威服务器获取他们的 NS 记录。Non-authoritative answer 简单的说就是查询的域名不是从权威的DNS服务器上获取的。
首先,您必须了解 DNS 系统的工作原理。DNS 系统可分为三层。他们是:
还有一类 DNS 服务器,通常称为本地 DNS 服务器,其 IP 地址在您的操作系统上指定。
当您的浏览器连接到网站 example.com 时,浏览器首先查询您的本地 DNS 服务器以获取 example.com 的 IP 地址。
如果本地 DNS 服务器没有 example.com 的 A 记录,它将查询其中一个根 DNS 服务器。
根DNS服务器会说:我没有A记录,但我知道负责.com域名的顶级域名DNS服务器。
然后你本地的DNS服务器查询负责.com域名的顶级域名DNS服务器。TLD DNS 服务器将响应:我也不知道,但我知道哪个 DNS 服务器对 example.com 具有权威性。
然后这个查询结果缓存在你的本地 DNS 服务器上,但它可能已经过时了。当 TTL 时间到期时,您的本地 DNS 服务器将更新来自权威 DNS 服务器的查询结果。每当您在本地 DNS 服务器上查询 DNS 记录时,它都会返回一个非权威(非官方)答案。如果您想要权威的答案,则在使用 nslookup 或其他实用程序时必须明确指定权威的 DNS 服务器。我觉得本地DNS服务器应该叫缓存DNS服务器。
当有人注册域名时,他/她可以指定哪个DNS服务器是权威的DNS服务器。此信息称为 NS 记录。NS 记录将告诉顶级域 DNS 服务器哪个名称服务器保存域的 A 记录、MX 记录等。
您收到的答复实质上是来自本地 DNS 服务器的缓存或转发响应。基本上,非权威名称服务器不包含被查询区域的记录;例如,您的本地 DNS 可能不会有 Google 的名称记录。
host -t ns example.com
您可以通过运行检索 example.com 的 NS 记录来获取对给定域具有权威性的名称服务器。就谷歌而言,我们看到:
如果您随后
nslookup
对其中一台服务器运行命令,您将获得权威答案:如果您使用
nslookup
, 来获取 NS 记录类型,您可以在交互模式下运行类似这样的命令:因此,设置
querytype=ns
执行上述host
命令的操作。来自Wireshark 实验室:DNS v6.01:
However, nslookup also indicates that the answer is “non-authoritative,” meaning that this answer came from the cache of some server rather than from an authoritative MIT DNS server
非权威名称服务器不包含域区域的原始源文件。他们有一个域的缓存文件,该文件是根据之前完成的所有 DNS 查找构建的。如果 DNS 服务器响应没有原始文件的 DNS 查询,则称为非权威答案。
如果您正在寻找有关服务器相互连接/联网的更清晰的解释,请参阅:https ://www.cloudflare.com/en-in/learning/dns/what-is-dns/ 。
以上链接分享了有关 DNS 系统确切工作原理的详细见解。