dns - 在 DNS 迭代查询中跟踪 A 记录的引用时,下一个问题应该是 A 类型还是 NS 类型?
问题描述
例如:我想查找 的 A 记录www.ardainc.org
。
我查询根服务器并通过对服务器的引用获得答案.org
。
当我.org
接下来查询服务器时,我是发送相同的问题(A 记录www.ardainc.org
)还是现在询问域名的 NS 记录?
根据经验,一直要求 A 记录似乎总是有效的,但我一直 听到解析器首先查找域的名称服务器,然后要求他们想要的实际记录。RFC 似乎没有具体说明。
解决方案
您总是发送相同的问题,因为无论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地址,所以更多A
和AAAA
查询)