Dig

為什麼主機比探勘某些查詢慢得多?

  • October 23, 2014

查詢特定地址時,針對 /etc/resolv.conf 中列出的解析器執行 dig 將很快返回 NXDOMAIN,主機需要一段時間。

$ 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

為什麼主持人要花這麼長時間才能得出相同的答案?

您的兩個命令不等效。

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查找,因此您也可以省略該參數。

引用自:https://serverfault.com/questions/638867