我使用以下步骤:
问题在于“子域名”(CNAME),例如:
> dig www.microsoft.com A
;; ANSWER SECTION:
www.microsoft.com. 696 IN CNAME toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net. 119 IN CNAME g.www.ms.akadns.net.
g.www.ms.akadns.net. 263 IN CNAME lb1.www.ms.akadns.net.
lb1.www.ms.akadns.net. 31 IN A 65.55.12.249
> dig www.microsoft.com NS
;; ANSWER SECTION:
www.microsoft.com. 619 IN CNAME toggle.www.ms.akadns.net.
toggle.www.ms.akadns.net. 42 IN CNAME g.www.ms.akadns.net.
g.www.ms.akadns.net. 186 IN CNAME lb1.www.ms.akadns.net.
;; AUTHORITY SECTION:
akadns.net. 174 IN SOA internal.akadns.net. hostmaster.akamai.com. 1304057105 90000 90000 90000 180
> dig lb1.www.ms.akadns.net A
;; ANSWER SECTION:
lb1.www.ms.akadns.net. 79 IN A 65.55.12.249
> dig lb1.www.ms.akadns.net NS
;; AUTHORITY SECTION:
akadns.net. 176 IN SOA internal.akadns.net. hostmaster.akamai.com. 1304057402 90000 90000 90000 180
如您所见,没有返回NS记录。如何克服这个问题?
答案 0 :(得分:1)
你的算法错了。这是正确的。
对于目标域名S
的每个连续较短的超级域T
,从T
本身开始:
NS
执行S
查询。如果答案不是非空资源记录集,请转到步骤3.否则,您有一组中间域名D[]
。A
中的每个名称执行AAAA
和D[]
次查找。这将为您提供一组IP地址。你有答案。的 END 强> SOA
上执行S
查找。如果答案是非空资源记录集,那么您将要跨越一个管理边界,但到目前为止找不到非空NS
资源记录集。根据您要查找的内容,您可以选择 ABEND 。请记住,您必须向自己的resolving proxy DNS server查询,而不是向外部内容DNS服务器查询,以便获得complete answer而非部分查询。还要记住,在检查响应时您必须遵循CNAME
个链。例如,上面对dig www.microsoft.com. NS
查询的回复是CNAME
链,导致NS
的空 lb1.www.ms.akadns.net.
资源记录集。< / p>