我尝试在非递归 DNS 服务器上挖掘域名。据我所知(到目前为止),非递归 DNS 不应该回答它们不具有权威性的问题。
例如 :
[root@dhcppc14 vwxyz]# dig muse.mu @202.159.36.218
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> muse.mu @202.159.36.218
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46239
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
**;; WARNING: recursion requested but not available**
;; QUESTION SECTION:
;muse.mu. IN A
;; ANSWER SECTION:
**muse.mu. 3600 IN A 162.249.109.50**
;; Query time: 253 msec
;; SERVER: 202.159.36.218#53(202.159.36.218)
;; WHEN: Sat Jun 27 05:58:14 2015
;; MSG SIZE rcvd: 41
你能解释一下究竟发生了什么吗?
谢谢,
答案1
我不确定是否202.159.36.218
应该是一个权威的名称服务器,muse.mu
也不确定它从何而来。因此,我无法解释为什么202.159.36.218
答案muse.mu
是非递归的。
dig
每当它发送带有 RD(需要递归)的查询并收到不带 RA(可用递归)的响应时,就会打印出您看到的警告。
dig
默认发送递归查询(消息类型 RD,“需要递归”)。
从dig
手册页中:
+[否]递归
切换查询中的 RD(需要递归)位的设置。此位默认设置,这意味着dig 通常会发送递归查询。当使用 +nssearch 或 +trace 查询选项时,递归会自动禁用。
从RFC 883:
支持递归服务的名称服务器会在其生成的所有响应中设置“递归可用 (RA)”位。请求者通过在查询中设置“所需递归 (RD)”位来请求递归服务。在某些情况下,如果递归服务是获取所需信息的唯一途径(见下文),即使 RD 为零,名称服务器也可能进行递归。
每当您查询不允许递归的权威名称服务器而没有指定查询为非递归(选项+norecurse
)时,都会打印警告。
答案2
尝试
dig +trace @202.159.36.218 muse.mu
检查您的情况的具体解决情况。
它要么立即返回 DNS 记录,因为它已经将其存储在本地缓存中,要么直接查询对该记录具有权威性的 DNS 名称服务器,这意味着它肯定拥有该主机名的正确 IP。