dig 和 host 命令返回不同的 SOA

dig 和 host 命令返回不同的 SOA

所以我找到了另一篇帖子,说 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状态 + )。此类响应意味着 处没有请求类型 ( )的记录。SOAAUTHORITYSOAtareme.ddns.net

输出host表示与英语句子相同的情况。

旁注:如果有SOA记录,它将位于ANSWER响应部分,并且所有者姓名将匹配(即,在这种情况下它必须在tareme.ddns.net)。

答案2

我理解错了,dig 实际上并没有显示 tareme.ddns.com 的 SOA,它只是输出了 ddns.com 的 SOA。如果你使用 dig +short,就会更容易发现实际上没有返回 SOA。

1au 似乎意味着我们可以接受大小为 4096 的 UDP 数据包。有关 tcpdump 的更多信息,请参见这里

相关内容