首页 > 解决方案 > 在 DNS 迭代查询中跟踪 A 记录的引用时,下一个问题应该是 A 类型还是 NS 类型?

问题描述

例如:我想查找 的 A 记录www.ardainc.org

我查询根服务器并通过对服务器的引用获得答案.org

当我.org接下来查询服务器时,我是发送相同的问题(A 记录www.ardainc.org)还是现在询问域名的 NS 记录?

根据经验,一直要求 A 记录似乎总是有效的,但我一直 听到解析器首先查找域的名称服务器,然后要求他们想要的实际记录。RFC 似乎没有具体说明。

标签: dns

解决方案


您总是发送相同的问题,因为无论QTYPE权威名称服务器如何,都会为您推荐正确的名称服务器,因此您会“自动”获得该AUTHORITY部分中的 NS 记录。

请参阅 RFC1034 第 4.3.2 节中的通用算法。目前尚不清楚您从哪里暗示“但我一直听说您需要检查 NS 记录。”

您可以轻松地手动复制它,并针对您的情况进行总结:

步骤1

dig www.ardainc.org A @a.root-servers.net给出:

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47905
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 13

;; AUTHORITY SECTION:
org.            2d IN NS d0.org.afilias-nst.org.
org.            2d IN NS a0.org.afilias-nst.info.
org.            2d IN NS c0.org.afilias-nst.info.
org.            2d IN NS a2.org.afilias-nst.info.
org.            2d IN NS b0.org.afilias-nst.org.
org.            2d IN NS b2.org.afilias-nst.org.

第2步

我们选择任何一个更进一步:

dig www.ardainc.org A @b2.org.afilias-nst.org.给出:

; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39247
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 1

;; AUTHORITY SECTION:
ardainc.org.        1d IN NS ns.josh.com.
ardainc.org.        1d IN NS ns2.josh.com.

第 3 步

与上一步相同:

dig www.ardainc.org A @ns2.josh.com.给出:

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23030
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1


;; ANSWER SECTION:
www.ardainc.org.    3m8s IN CNAME web.josh.com.
web.josh.com.       5m IN CNAME aws.josh.com.
aws.josh.com.       1m IN A 18.217.156.232

我们得到了答案,解决方案停在那里。请注意,我们做了三个A查询,从来没有NS一个。

如果你这样做dig +trace,你会看到同样的事情,

(当然在你看到的下面会发生更多的事情,因为当你这样做的时候@ns2.josh.com.dig首先要解析这个名字才能找到IP地址,所以更多AAAAA查询)


推荐阅读