如何配置 dnsmask 以继续搜索上游服务器,直到找到答案

如何配置 dnsmask 以继续搜索上游服务器,直到找到答案

我有两个域服务器:一个(172.25.250.254)是私人服务器,用于服务私人*.lab.example.com请求,另一个(在我的盒子里是192.168.1.1)用于服务公共请求,如index.docker.io或google.com。

我的配置

/etc/dnsmask.conf

# Include all files in /etc/dnsmasq.d except RPM backup files
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

/etc/dnsmask.d/node-dnsmask.conf

 server=/in-addr.arpa/127.0.0.1
 server=/cluster.local/127.0.0.1

/etc/dnsmask.d/origin-dns.conf

no-resolv
domain-needed
no-negcache
max-cache-ttl=1
enable-dbus
dns-forward-max=5000
cache-size=5000
bind-dynamic
except-interface=lo
# End of config

/etc/dnsmask.d/origin-upstream-dns.conf

server=172.25.250.254
server=192.168.1.1

并且 dnsmask 可以解析私有名称但不解析公共名称,或者可以解析公共名称但不解析私有名称:

dig index.docker.io -> answer 0
dig node1.lab.example.com -> answer 1

10分钟后

dig index.docker.io -> answer 3
dig node1.lab.example.com -> answer 0

答案1

我部分回答了我自己的问题

阅读dnsmask 手册页在所有服务器选项中

--all-servers
By default, when dnsmasq has more than one upstream server available, 
it will send queries to just one server. Setting this flag forces dnsmasq to 
send all queries to all available servers. The reply from the server which 
answers first will be returned to the original requester.

据说查询只会被发送到一台服务器,这解释了这种情况。

如果我添加这个选项,问题似乎就解决了。

但是我不明白“第一个答案”是什么意思,第一个回答的人就是获胜者,还是第一个给出非零答案的人就是获胜者?

如果前者是真的,那么行为可能会随着时间的推移而不稳定。

相关内容