作为项目的一部分,我编写了一个非常简单的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.这是否会导致问题?
答案 0 :(得分:0)
尝试挖掘+trace
选项:
dig example.com +trace