DNS - NSLOOKUP 非权威答案是什么意思?

mah*_*n3d 157 domain-name-system nslookup

对于某些域,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
Run Code Online (Sandbox Code Playgroud)

Hop*_*00b 133

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

它基本上是您正在查询的域的正式名称服务器的名称服务器和不是的名称服务器之间的区别。不权威的域名服务器正在第二手(或第三或第四...)获得他们的答案 - 只是从其他地方转发信息。

因此,例如,如果我maps.google.com现在执行 nslookup ,我将收到来自我配置的名称服务器之一的响应。(无论是来自我的 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 记录。


Lin*_*abe 52

非权威答案仅意味着未从权威 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 服务器将响应:我也不知道,但我知道哪个 DNS 服务器对 example.com 具有权威性。

  • 所以你本地的DNS服务器查询权威的DNS服务器。由于实际的 DNS 记录存储在该权威 DNS 服务器上,因此它会给您的本地 DNS 服务器一个答案。

然后此查询结果缓存在您的本地 DNS 服务器上,但它可能已过时。当 TTL 时间到期时,您的本地 DNS 服务器将更新来自权威 DNS 服务器的查询结果。每当您在本地 DNS 服务器上查询 DNS 记录时,它都会返回一个非权威(非官方)答案。如果您需要权威答案,则必须在使用 nslookup 或其他实用程序时明确指定权威 DNS 服务器。我认为本地 DNS 服务器应该称为缓存 DNS 服务器。

当有人注册域名时,他/她可以指定哪个 DNS 服务器是权威 DNS 服务器。此信息称为 NS 记录。NS 记录将告诉顶级域 DNS 服务器哪个名称服务器保存域的 A 记录、MX 记录等。

  • 这比所有其他答案的总和解释得更多。解释 DNS 工作原理的拓扑结构对于为此问题提供上下文非常有用。 (10认同)

cjc*_*cjc 44

您收到的答案本质上是来自本地 DNS 服务器的缓存或转发的响应。基本上,非权威名称服务器不包含被查询区域的记录;例如,您的本地 DNS 可能不会有 Google 的名称记录。

您可以通过运行host -t ns example.com检索 example.com 的 NS 记录来获取对给定域具有权威性的名称服务器。

在谷歌的情况下,我们看到:

$ 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.
Run Code Online (Sandbox Code Playgroud)

如果您随后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
Run Code Online (Sandbox Code Playgroud)

如果你使用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
Run Code Online (Sandbox Code Playgroud)

因此,设置querytype=ns执行上述host命令所做的工作。

  • 只是好奇……“地址:127.0.0.1#53”中的“#”是什么意思? (2认同)

小智 7

来自Wireshark 实验室: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