Domain-Name-System

dig 和 host 命令返回不同的 SOA

  • January 21, 2018

所以我發現另一個文章說主機和探勘本質上是相同的,除了主機更使用者友好。在大多數情況下,這似乎是真的,但是我在嘗試為我的一個域查找 SOA 時遇到了這個問題。

michael@collins:/etc/tinydns/root$ host -t SOA tareme.ddns.net
tareme.ddns.net has no SOA record
michael@collins:/etc/tinydns/root$ dig tareme.ddns.net SOA

; <<>> DiG 9.10.3-P4-Ubuntu <<>> tareme.ddns.net SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31834
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;tareme.ddns.net.       IN  SOA

;; AUTHORITY SECTION:
ddns.net.       1461    IN  SOA nf1.no-ip.com. hostmaster.no-ip.com. 2166190473 10800 1800 604800 1800

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jan 21 16:10:02 EST 2018
;; MSG SIZE  rcvd: 104

此外,當嘗試使用 tcpdump 查看它們之間的區別時,我得到以下第一個是主機請求,第二個是探勘。

16:09:44.276445 IP 10.0.0.5.33198 > google-public-dns-a.google.com.domain: 59495+ SOA? tareme.ddns.net. (33)
16:09:44.304564 IP google-public-dns-a.google.com.domain > 10.0.0.5.33198: 59495 0/1/0 (93)


16:10:02.653507 IP 10.0.0.5.59141 > google-public-dns-a.google.com.domain: 31834+ [1au] SOA? tareme.ddns.net. (44)
16:10:02.676878 IP google-public-dns-a.google.com.domain > 10.0.0.5.59141: 31834 0/1/1 (104)

似乎唯一的區別是

$$ 1au $$在探勘請求中,但是Google搜尋我無法找到這意味著什麼。

這兩個答案其實是一致的。

dig輸出(基本上只是一個漂亮列印的 DNS 消息)顯示了一個響應NODATA(即該部分中相關區域的NOERROR狀態 + )。這種類型的響應意味著在 沒有請求類型()的記錄。SOA``AUTHORITY``SOA``tareme.ddns.net

host輸出表示與英語句子相同的情況。

旁注:如果有SOA記錄,它將在ANSWER響應的部分中,並且所有者名稱將是匹配的(即,在這種情況下它必須是 at tareme.ddns.net)。

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