当查询特定地址时,按照 /etc/resolv.conf 中列出的解析器运行 dig 将会快速返回 NXDOMAIN,而 host 则需要一段时间。
$ dig @<resolver> 140.80.199.91.in-addr.arpa ptr
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @<resolver>140.80.199.91.in-addr.arpa ptr
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 40000
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;140.80.199.91.in-addr.arpa. IN PTR
;; Query time: 1 msec
;; SERVER: <resolver>#53(<resolver>)
;; WHEN: Wed Oct 22 16:08:38 2014
;; MSG SIZE rcvd: 44
但在主机上速度要慢得多......
$ time host 140.80.199.91 <resolver>
;; connection timed out; no servers could be reached
real 0m12.007s
user 0m0.001s
sys 0m0.007s
为什么主持人花了这么长时间才给出同样的答案?
答案1
您的两个命令并不等效。
host 140.80.199.91
相当于:
dig 91.199.80.140.in-addr.arpa ptr
PTR 记录中的标签是 IP 地址元素的反向。
由于您正在查找不同 IP 的反向 DNS,因此它们会尝试访问不同的 DNS 服务器。因此时间自然会有所不同。在您的示例中,反向 DNS 服务器199.80.140.in-addr.arpa
没有响应,因此您会遇到超时。
为了避免手动反转 IP,您可以使用该-x
选项作为快捷方式:
dig -x 140.80.199.91
此选项也默认为PTR
查找,因此您也可以省略该参数。