0

作为项目的一部分,我编写了一个非常简单的 DNS 服务器,其唯一目的是解析它所服务区域的查询,并存储进行查询的服务器的 IP 地址。

我注意到,如果我使用 dig,我的 DNS 服务器会被多次查询——有时来自同一个 IP 地址。为什么会这样?是因为 UDP 的不可靠特性吗?

例如,这是我做的一个挖掘回复:

C:\Data>dig  xyz.dns.example.com

; <<>> DiG 9.10.4-P2 <<>> xyz.dns.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2539
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xyz.dns.example.com. IN   A

;; ANSWER SECTION:
xyz.dns.example.com. 12321 IN A    50.16.166.175

;; Query time: 224 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Thu Aug 11 15:07:42 Eastern Daylight Time 2016
;; MSG SIZE  rcvd: 77

在此示例中,example.com 的区域文件具有 dns.example.com 的 NS 记录,这是我的简单 DNS 服务器运行的位置。对于这一查询,我的服务器从 2 个不同的 IP 地址被调用了 4 次。

我还注意到我应该返回一个“附加”记录,但我在字节 10 和 11 中返回的数据显然是 0。这会导致问题吗?

4

1 回答 1

0

尝试 dig 的+trace选项:

dig example.com +trace

于 2016-08-18T14:35:28.190 回答