如何识别提供 DNS 响应的服务器?

如何识别提供 DNS 响应的服务器?

总结:在哪里nslookup www.somedomain.com -debug我可以找到回复查询链的服务器的名称/IP?

细节:

我有一个设置(Windows 10 机器)

  • 它连接到企业 LAN(example.corp)并已建立出站 OpenVPN 连接(到example.customer
  • DNS 请求被委托给本地 ( 127.0.0.1) 服务器(即未绑定

此 DNS 服务器设置为转发 DNS 查询:

  • example.corp到企业 DNS
  • example.customer到 VPN 后面的客户 DNS
  • 互联网主机(google.com,...)到 VPN 后面的客户 DNS(这样做有多种原因,而不是使用企业 DNS 或诸如 之类的提供商1.1.1.1

我现在想确保正确的服务器能够解析正确的查询。这对于公司和客户相关的查询来说很容易(没有其他人可以正确解析它们,因此如果解析了它们,则意味着命中了正确的 DNS),但我对互联网查询有疑问(最终它们中的任何一个都可以正确解析)。

我使用的解决方案是监控 VPN 的流量,看看是否有相关的 DNS 数据包通过。有,所以我知道设置没问题。

这种方法不是最好的,我更愿意使用的功能来nslookup找出答案。我尝试set debug使用该工具,看看对互联网机器进行查询会出现什么结果(yahoo.fr)。

解析首先经过yahoo.fr.somesubdomain.example.corp, yahoo.fr.someothersubdomain.example.corp- 域后缀列表中的所有内容。显然,所有查询均未通过,因此尝试下一个查询。示例:

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 99, rcode = NXDOMAIN
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        yahoo.fr.somesubdomain.example.corp, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  (root)
        ttl = 3440 (57 mins 20 secs)
        primary name server = thecorpnsserver.example.corp
        responsible mail addr = root.thecorpnsserver.example.corp
        serial  = 2018113000
        refresh = 1800 (30 mins)
        retry   = 900 (15 mins)
        expire  = 604800 (7 days)
        default TTL = 86400 (1 day)

这是一个失败的查询,但我没有看到任何响应的服务器(这不是 ,thecorpnsserver.example.corp只是 的一部分SOAexample.corp。换句话说,提供SOAAUTHORITY RECORDS)的服务器

我终于得到了答案

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 100, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 5,  authority records = 0,  additional = 0

    QUESTIONS:
        yahoo.fr, type = A, class = IN
    ANSWERS:
    ->  yahoo.fr
        internet address = 106.10.248.151
        ttl = 17 (17 secs)
    ->  yahoo.fr
        internet address = 98.136.103.24
        ttl = 17 (17 secs)
    ->  yahoo.fr
        internet address = 124.108.115.101
        ttl = 17 (17 secs)
    ->  yahoo.fr
        internet address = 74.6.136.151
        ttl = 17 (17 secs)
    ->  yahoo.fr
        internet address = 212.82.100.151
        ttl = 17 (17 secs)

------------
Non-authoritative answer:
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 101, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        yahoo.fr, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  yahoo.fr
        ttl = 595 (9 mins 55 secs)
        primary name server = hidden-master.yahoo.com
        responsible mail addr = hostmaster.yahoo-inc.com
        serial  = 2018112700
        refresh = 3600 (1 hour)
        retry   = 900 (15 mins)
        expire  = 604800 (7 days)
        default TTL = 600 (10 mins)

------------
Name:    yahoo.fr
Addresses:  106.10.248.151
          98.136.103.24
          124.108.115.101
          74.6.136.151
          212.82.100.151

但它仍然没有说明哪个 DNS 服务器处理了该请求。

答案1

当您以交互模式启动 nslookup 时,正在使用的服务器将列为“默认服务器”。这是 nslookup 正在使用的服务器。

如果您正在寻找默认服务器正在使用的上游服务器,那么您将不会在 nslookup 中看到它。

相关内容