我有一个使用合成域选项的dnsmasq运行实例。 它对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。 这可能吗?
不是没有修改dnsmasq代码本身。 您所看到的是正确的行为:如果parsing器不知道答案,并且对于给定域是权威的,就像定义的synth-domain
构造的情况那样,它有义务用NXDOMAIN
进行响应。 此外,这将是一个不良反应(没有错误,没有AN
, NS
或AR
logging)。