大多数 TLD 的 DNS 查询不通过 dnsmasq

大多数 TLD 的 DNS 查询不通过 dnsmasq

在 OpenWRT 10.03.1 上安装了 dnsmasq 2.55 的路由器后面的 LAN 中,大多数对顶级域名的 DNS 查询都返回负面结果,例如:

$ dig com. ANY

; <<>> DiG 9.7.3 <<>> com. ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36108
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;com.               IN  ANY

;; Query time: 3 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Feb 12 22:37:30 2013
;; MSG SIZE  rcvd: 21

当使用某些外部递归服务器(例如dig com. ANY @8.8.8.8)时,查询结果成功。

我认为问题可能是 dnsmasq 将查询视为.com对非限定名称的查询com(终端.似乎总是被剥离)。但即使将 dnsmasq 配置为转发对 com 域名和非限定名称的查询:

server=/com/8.8.8.8,server=//8.8.8.8

结果是一样的。

但是,有些类型的查询实际上会通过,例如NSSOA。此外,还有一些不会通过并返回 的查询NOXDOMAINANY例如DNSKEYRRSIG

dnsmasq 日志中的相应行是:

Feb 12 21:41:13 myrouter daemon.info dnsmasq[11569]: using nameserver 8.8.8.8#53 for unqualified names
...
Feb 12 21:42:52 myrouter daemon.debug dnsmasq[11569]: query[DNSKEY] com from 192.168.1.5
Feb 12 21:42:52 myrouter daemon.debug dnsmasq[11569]: config com is NXDOMAIN
...
Feb 12 21:43:06 myrouter daemon.debug dnsmasq[11569]: query[NS] com from 192.168.1.5
Feb 12 21:43:06 myrouter daemon.debug dnsmasq[11569]: forwarded com to 8.8.8.8

我想知道是否可以以及如何配置 dnsmasq 以返回这些查询的预期结果。(“正常”主机名的查询正常工作)

答案1

您可能有domain-needed选项已启用:

  -D, --domain-needed

告诉 dnsmasq 永远不要将 A 或 AAAA 查询转发到上游名称服务器,查询内容为纯名称(不含点或域部分)。如果 /etc/hosts 或 DHCP 中未找到该名称,则返回“未找到”答案。

找到设置的位置(/etc/dnsmasq.conf或命令行参数)并将其删除。

答案2

我猜问题出在域名正则表达式上。这对我来说有效。

只需删除域上的正则表达式: server=8.8.8.8#53

相关内容