DNS-NSLOOKUP非权威答案的含义是什么?


115

对于某些领域,请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

14
www.xxx.com并不是域名示例haha;)... RFC建议您使用example.com。参见iana.org/domains/reserved
Mzn

Answers:


98

基本上,这就是名字所说的。权威答案来自一个名称服务器,该域名服务器认为该域名服务器为其返回记录(对于您在其中查找域名的列表中的名称服务器之一),该域名服务器来自其他任何地方(一个名称服务器不在您进行查询的域的列表中)。

基本上,这是名称服务器(不是要查询的域的正式名称服务器)和名称服务器(不是要查询的域)之间的区别。不具有权威性的名称服务器正在第二次(或第三或第四...)获得答案-只是从其他地方中继信息。

因此,例如,如果我现在进行一次nslookup maps.google.com,我将从一个配置的名称服务器中得到响应。(无论是从我的ISP还是从我的域获取。)由于我的ISP的名称服务器和我自己的ISP都不在的名称服务器列表中,因此它将以非权威的方式返回google.com。它们不是Google的名称服务器,因此不是创建NS记录的权威来源。

以下是Google的权威名称服务器列表(来自whois.internic.net)。

域名:GOOGLE.COM

注册商:MARKMONITOR INC。

Whois服务器: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记录。


35

您收到的答案本质上是来自本地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命令。


只是好奇...这#是什么意思Address: 127.0.0.1#53
cwhsu

因为监听端口而猜对了吗?就像这里所说的nlp.stanford.edu/IR-book/html/htmledition/dns-resolution-1.html
cwhsu

24

非权威性答案仅表示未从权威DNS服务器获取查询域名的答案。

首先,您必须了解DNS系统的工作方式。DNS系统可以分为三层。他们是:

  • 根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服务器将做出响应:我也不知道,但是我知道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记录等。


4
这比所有其他答案的总和还要多。解释DNS如何工作的拓扑对于提供此问题的上下文非常有用。
维·罗伯茨

1

来自Wireshark Lab:DNS v6.01However, 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.