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.ssss.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
#1 楼
基本上,这就是名字所说的。权威答案来自一个名称服务器,该域名服务器认为该域名服务器为其返回记录(对于您在其中查找域名的列表中的名称服务器之一),而该域名服务器来自其他任何地方(一个名称服务器不在您要查找的域的列表中。)基本上,这是名称服务器(不是要查询的域的正式名称服务器)和名称服务器(不是要查询的域)之间的区别。不具权威性的名称服务器正在第二次(或第三或第四次...)获得答案-只是从其他地方中继信息。
因此,例如,如果我现在对
maps.google.com
进行了nslookup,我将从配置的一个名称服务器中得到响应。 (或者来自我的ISP或我的域。)由于我的ISP的名称服务器或我自己的ISP都不在google.com
的名称服务器列表中,因此它将以非权威的方式返回。它们不是Google的名称服务器,因此不是创建NS记录的权威来源。下面是Google的权威名称服务器列表(来自whois.internic.net)。
域名:GOOGLE.COM
注册器:MARKMONITOR INC。
域名服务器:whois.markmonitor.com
名称服务器:NS1.GOOGLE.COM
名称服务器:NS2.GOOGLE .COM
名称服务器:NS3.GOOGLE.COM
名称服务器:NS4.GOOGLE.COM
更新日期:2011年7月20日
创建日期:1997年9月15日
到期日期:2020年9月14日
如果我将已配置的DNS服务器更改为该列表中的其中一个,然后对
nslookup
执行了maps.google.com
,我将获得权威应答。这些服务器是Google域名中哪些是有效名称,哪些不是这些名称的授权(或来源)。所有其他名称服务器(非权威性名称服务器)均从权威服务器获取其NS记录。#2 楼
您收到的答案本质上是来自本地DNS服务器的缓存或转发的响应。基本上,非权威名称服务器是不包含要查询的区域的记录的服务器。例如,您的本地DNS可能不会包含Google的名称记录。通过运行
host -t ns example.com
来检索example.com的NS记录,可以获得对指定域具有权威性的名称服务器。 对于Google,我们看到:
$ host -t ns google.com
google.com name server ns4.google.com.
google.com name server ns1.google.com.
google.com name server ns2.google.com.
google.com name server ns3.google.com.
如果随后对其中一台服务器运行
nslookup
命令,您将获得权威答案:$ nslookup www.google.com ns1.google.com
Server: ns1.google.com
Address: 216.239.32.10#53
www.google.com canonical name = www.l.google.com.
Name: www.l.google.com
Address: 173.194.43.49
Name: www.l.google.com
Address: 173.194.43.50
Name: www.l.google.com
Address: 173.194.43.48
Name: www.l.google.com
Address: 173.194.43.52
Name: www.l.google.com
Address: 173.194.43.51
如果您使用
nslookup
,则要获取NS记录类型,可以在交互模式下运行以下内容:$ nslookup
> set querytype=ns
> google.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
google.com nameserver = ns3.google.com.
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns2.google.com.
Authoritative answers can be found from:
ns1.google.com internet address = 216.239.32.10
因此,设置
querytype=ns
会执行上述host
命令所执行的操作。评论
只是好奇...地址#127.0.0.1#53中的#是什么意思?
– cwhsu
18 Mar 2 '18 at 6:30
因为监听端口而猜对了吗?就像这里所说的nlp.stanford.edu/IR-book/html/htmledition/dns-resolution-1.html
– cwhsu
18 Mar 2 '18 at 7:27
#3 楼
非权威性答案仅表示未从权威DNS服务器获取所查询域名的答案。首先,您必须了解DNS系统的工作方式。 DNS系统可以分为三层。它们是:
根DNS服务器
顶级域DNS服务器
权威DNS服务器
通常还有另一类DNS服务器称为本地DNS服务器,其IP地址在您的操作系统上指定。
当浏览器连接到网站example.com时,浏览器首先查询您的本地DNS服务器以获取example的IP地址。 com。
如果本地DNS服务器没有example.com的A记录,它会查询一台根DNS服务器。
根DNS服务器会说:我没有A记录,但我知道
顶级域名DNS服务器,它负责.com
域。
然后您的本地DNS服务器查询顶部级别的域DNS服务器,它负责.com域。
TLD DNS服务器将响应:我也不知道,但我知道example.com是哪个DNS
服务器。
因此,您的本地DNS服务器查询权威DNS服务器。因为
实际的DNS记录存储在该权威DNS服务器上,所以它会给您的本地DNS服务器一个答案。
然后此查询结果将缓存在您的本地DNS上服务器,但它可以过时了。 TTL时间到期后,您的本地DNS服务器将更新来自权威DNS服务器的查询结果。每当您在本地DNS服务器上查询DNS记录时,它都会返回非权威性(非官方)答案。如果需要权威性答案,则在使用nslookup或其他实用程序时必须明确指定权威DNS服务器。我认为本地DNS服务器应称为缓存DNS服务器。
当某人注册域名时,他/她可以指定哪个DNS服务器是权威DNS服务器。此信息称为NS记录。 NS记录将告诉顶级域DNS服务器,哪个域名服务器保存该域的A记录,MX记录等。
评论
这比所有其他答案的总和解释得更多。解释DNS如何工作的拓扑对于提供此问题的上下文非常有用。
–李维·罗伯茨(Levi Roberts)
17年1月1日在10:05
#4 楼
来自Wireshark Lab: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
评论
www.xxx.com并不是域名示例haha;)... RFC建议您使用example.com。参见iana.org/domains/reserved您始终可以运行带有权威名称服务器附加参数的nslookup命令。例如nslookup maps.google.com NS1.GOOGLE.COM // //它将始终从Google权威服务器返回答案