您如何检查域名服务器是否响应递归查询?


18

我只是很好奇,如果您可以使用dig来检查某个名称服务器是否响应了递归查询。

谢谢!

Answers:


20

使用dig并检查响应中RDRA位的状态。

默认情况下,除非您设置命令行标志,否则dig将发送递归查询(RD在查询标头中设置)+norecurse

如果服务器支持递归查询,则响应将RA在响应头中设置“递归可用” 位。

RA位是对递归查询支持诊断测试。


11

查看是否可以查询不具有权威性的DNS条目,例如try host www.cnn.com ns.example.com:,其中ns.example.com是要测试的名称服务器。如果它不响应递归查询,您将获得拒绝。

$ host www.cnn.com. ns1.example.com
Using domain server:
Name: ns1.example.com
Address: 192.168.183.130#53
Aliases:

Host www.cnn.com not found: 5(REFUSED)

而执行递归查询的DNS服务器:

$ host www.cnn.com. 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

www.cnn.com has address 157.166.255.18
www.cnn.com has address 157.166.255.19
www.cnn.com has address 157.166.226.25
www.cnn.com has address 157.166.226.26

非常感谢@cjc。我还想出了另一种方法,但使用了挖掘。尝试将域查找到对该域无权的名称服务器。如果不返回任何内容,则表示它不响应递归查询。
Mikko 2012年

@Mikko,是的,dig和和host(以及现已弃用的nslookup)都是DNS查询工具。所有这些都足以确定DNS服务器是否允许从您的IP地址进行递归查询。
cjc 2012年

这是错误的- REFUSED如果您向权威名称服务器索要有关其没有区域文件的域的信息,您也会得到响应代码。
Alnitak

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.