dnsmasq 可以为 synth 域上的 AAAA 请求返回 NOERROR 吗?

dnsmasq 可以为 synth 域上的 AAAA 请求返回 NOERROR 吗?

我有一个正在运行的 dnsmasq 实例,它使用了 synth-domain 选项。它对 A 查询非常有效,但是,它会对 AAAA 查询返回 NXDOMIN。以下是如何复制的示例。

运行 dnsmasq:

dnsmasq --keep-in-foreground --synth-domain=example.com,192.168.1.0/24,ip-

一个问题:

dig ip-192-168-1-100.example.com @127.0.0.1 a

; <<>> DiG 9.11.1-P3 <<>> ip-192-168-1-100.example.com @127.0.0.1 a
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45136
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ip-192-168-1-100.example.com.  IN  A

;; ANSWER SECTION:
ip-192-168-1-100.example.com. 0 IN  A   192.168.1.100

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jul 19 14:24:52 PDT 2017
;; MSG SIZE  rcvd: 73

AAAA 查询:

$ dig ip-192-168-1-100.example.com @127.0.0.1 aaaa

; <<>> DiG 9.11.1-P3 <<>> ip-192-168-1-100.example.com @127.0.0.1 aaaa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5180
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ip-192-168-1-100.example.com.  IN  AAAA

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jul 19 14:33:45 PDT 2017
;; MSG SIZE  rcvd: 57

在这种情况下,我希望 dnsmasq 返回一个空的 NOERROR 响应,而不是 NXDOMAIN。这可能吗?

答案1

不修改 dnsmasq 代码本身是不行的。您看到的是正确的行为:如果解析器不知道答案,并且对给定域具有权威性(对于这种定义的synth-domain构造就是这种情况),则它有义务使用 进行响应NXDOMAIN。此外,这将是一个格式错误的响应(没有错误,也没有ANNSAR记录)。

相关内容