![DNS 服务器知道权限但不提供答案](https://linux22.com/image/662546/DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9F%A5%E9%81%93%E6%9D%83%E9%99%90%E4%BD%86%E4%B8%8D%E6%8F%90%E4%BE%9B%E7%AD%94%E6%A1%88.png)
我正在尝试连接到可通过 VPN 访问的地址。我的 ISP 的 DNS 服务器似乎知道该域的授权机构在哪里,但无法返回答案/IP 地址。但直接使用授权机构时,我可以获取 IP。
selene:app-resource-hub work$ dig jenkins.tescloud.com +all @2001:8b0:856:1::1
; <<>> DiG 9.8.3-P1 <<>> jenkins.tescloud.com +all @2001:8b0:856:1::1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32447
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;jenkins.tescloud.com. IN A
;; ANSWER SECTION:
jenkins.tescloud.com. 47 IN CNAME jenkins-az1.management.tescloud.com.
;; AUTHORITY SECTION:
tescloud.com. 161304 IN NS ns-1057.awsdns-04.org.
tescloud.com. 161304 IN NS ns-1754.awsdns-27.co.uk.
tescloud.com. 161304 IN NS ns-399.awsdns-49.com.
tescloud.com. 161304 IN NS ns-831.awsdns-39.net.
;; Query time: 33 msec
;; SERVER: 2001:8b0:856:1::1#53(2001:8b0:856:1::1)
;; WHEN: Thu Jul 16 12:56:15 2015
;; MSG SIZE rcvd: 212
selene:app-resource-hub work$ dig jenkins.tescloud.com +all @ns-1057.awsdns-04.org.
; <<>> DiG 9.8.3-P1 <<>> jenkins.tescloud.com +all @ns-1057.awsdns-04.org.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 628
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;jenkins.tescloud.com. IN A
;; ANSWER SECTION:
jenkins.tescloud.com. 60 IN CNAME jenkins-az1.management.tescloud.com.
jenkins-az1.management.tescloud.com. 60 IN A 10.17.12.222
;; AUTHORITY SECTION:
tescloud.com. 172800 IN NS ns-1057.awsdns-04.org.
tescloud.com. 172800 IN NS ns-1754.awsdns-27.co.uk.
tescloud.com. 172800 IN NS ns-399.awsdns-49.com.
tescloud.com. 172800 IN NS ns-831.awsdns-39.net.
;; Query time: 278 msec
;; SERVER: 205.251.196.33#53(205.251.196.33)
;; WHEN: Thu Jul 16 12:56:26 2015
;; MSG SIZE rcvd: 228
selene:service-site-assets work$ dig jenkins-
az1.management.tescloud.com. +all @2001:8b0:856:1::1
; <<>> DiG 9.8.3-P1 <<>> jenkins-az1.management.tescloud.com. +all @2001:8b0:856:1::1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47843
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;jenkins-az1.management.tescloud.com. IN A
;; AUTHORITY SECTION:
tescloud.com. 158420 IN NS ns-1057.awsdns-04.org.
tescloud.com. 158420 IN NS ns-1754.awsdns-27.co.uk.
tescloud.com. 158420 IN NS ns-399.awsdns-49.com.
tescloud.com. 158420 IN NS ns-831.awsdns-39.net.
;; Query time: 103 msec
;; SERVER: 2001:8b0:856:1::1#53(2001:8b0:856:1::1)
;; WHEN: Thu Jul 16 13:44:19 2015
;; MSG SIZE rcvd: 190
答案1
你得到了答案。在第一个例子中,它是 CNAME 记录。远程服务器实际上不需要为你从 CNAME 进行二次查找,直到得到最终结果,尽管几乎每个人都会这样做。所以你的结果没有错,只是有点奇怪。如果你想继续投资,接下来要看的是你发送第一个问题的服务器是否能按预期解决问题jenkins-az1.management.tescloud.com.
。
答案2
您执行的第三个查询是相关的。您看到的是非权威性回复,其中没有答案,代码为NOERROR
。这意味着“没有具有该名称和类型的记录,但有其他具有该名称和不同类型的记录”。它类似于NXDOMAIN
,但表示具有该名称的其他记录做存在。换句话说,当您的 ISP 请求该信息时,该信息并不存在,并且它记住了这一点。
至于为什么你的 ISP 没有忘记这一点……请查看你的 SOA 记录:
tescloud.com. 900 IN SOA ns-1754.awsdns-27.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
SOA 记录中的最后一位数字称为NCACHE
值或负缓存值。这是您向互联网上的名称服务器发出的指令,指示它们应记住记录缺失多长时间。(即记住“负”响应多长时间)
您目前正在指示互联网上的 DNS 服务器记住 86400 秒(即 24 小时)的否定响应。许多名称服务器将强制执行小于此的最大否定缓存期,但有些则不会,并且当您执行这些测试时,ISP 的名称服务器很可能仍然缓存了该否定记录的缺失。
这个问题可能会在接下来的 24 小时内自行解决,但与此同时,你应该把你的NCACHE
价值降低到更合理的水平。(最多一小时)