所以我找到了另一篇帖子,说 host 和 dig 本质上是一样的,只是 host 更方便用户使用。在大多数情况下,这似乎是正确的,但是我在尝试查找我的一个域的 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],但是通过谷歌搜索我无法找到这是什么意思。
答案1
这两个答案其实是一致的。
输出dig
(本质上只是一条漂亮打印的 DNS 消息)显示NODATA
响应(即部分中相关区域的NOERROR
状态 + )。此类响应意味着 处没有请求类型 ( )的记录。SOA
AUTHORITY
SOA
tareme.ddns.net
输出host
表示与英语句子相同的情况。
旁注:如果有SOA
记录,它将位于ANSWER
响应部分,并且所有者姓名将匹配(即,在这种情况下它必须在tareme.ddns.net
)。
答案2
我理解错了,dig 实际上并没有显示 tareme.ddns.com 的 SOA,它只是输出了 ddns.com 的 SOA。如果你使用 dig +short,就会更容易发现实际上没有返回 SOA。
1au 似乎意味着我们可以接受大小为 4096 的 UDP 数据包。有关 tcpdump 的更多信息,请参见这里。