dnsmasq 不会按预期处理不合格名称的默认 DNS

dnsmasq 不会按预期处理不合格名称的默认 DNS

我正在尝试为所有主机名设置 DoH,除了一些应由 DHCP 提供的 DNS 解析的本地域。

它按预期使用完全限定名称,即本地名称被发送到 DHCP 分配的服务器,而其他所有内容都被发送到我的 DoH 客户端stubby。但是,我在处理不合格名称时遇到问题。

这是我的配置/etc/NetworkManager/dnsmasq.d/example.conf

cache-size=1000
log-queries
server=//#
server=/example.com/#
server=/#/127.0.0.1#8053

请注意,它stubby在端口 8053 上运行。为简洁起见,这是我的/etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

journalctl这是restartng 后的部分输出NetworkManager

dnsmasq[10692]: using nameserver 127.0.0.1#8053 for default
dnsmasq[10692]: using standard nameservers for domain example.com
dnsmasq[10692]: using standard nameservers for unqualified names    <<< NOTICE THIS
dnsmasq[10692]: cleared cache
dnsmasq[10692]: setting upstream servers from DBus
dnsmasq[10692]: using nameserver 127.0.0.1#8053 for default
dnsmasq[10692]: using standard nameservers for domain example.com
dnsmasq[10692]: using standard nameservers for unqualified names
dnsmasq[10692]: using nameserver 10.X.X.X#53(via enp0s31f6)
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain example.com
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain X.X.X.10.in-addr.arpa
dnsmasq[10692]: using nameserver 10.X.X.X#53 for domain X.X.X.10.in-addr.arpa

之后dig asdfg.com,我得到这个:

dnsmasq[10692]: query[A] asdfg.com from 127.0.0.1
dnsmasq[10692]: forwarded asdfg.com to 127.0.0.1

因此,DoH 的工作符合预期。

之后dig asdfg.example.com,我得到这个:

dnsmasq[10692]: query[A] asdfg.example.com from 127.0.0.1
dnsmasq[10692]: forwarded asdfg.example.com to 10.X.X.X

因此,转发到本地 DNS 也是可行的。

之后dig asdfg,我得到这个:

dnsmasq[10692]: query[A] asdfg from 127.0.0.1
dnsmasq[10692]: forwarded asdfg to 127.0.0.1

由于它将其发送到127.0.0.1而不是10.X.X.X,因此很明显它被发送到 DoH。

我怎样才能解决这个问题?

附: Debian 11,Dnsmasq 版本 2.85

答案1

好像是个 bug [1,2] 已在 2.86 版本中修复。

相关内容