我的dnsmasq.conf目前有一些上游服务器
all-servers
dns-loop-detect
no-resolv
server=10.0.0.100
server=10.0.0.101
server=192.168.53.1
server=192.168.53.2
根据哪个服务器首先响应,有时客户端会得到NXDOMAIN
响应。
但在发送否定响应之前,我想尝试另一台服务器。
有没有办法让dnsmasq
表现得像CoreDNS的扇出插件?
每个到达CoreDNS扇出插件的传入DNS查询都将并行复制到每个列出的IP(即DNS服务器(
来自任何查询的DNS服务器的第一个非否定响应将作为对应用程序DNS请求的响应进行转发。
您可以使用iptables过滤来自上游DNS服务器的NXDOMAIN回复。
这样dnsmasq将超时,而不是获得NXDOMAIN
当与所有服务器dnsmasq配置选项配对时,这将达到您想要的效果。示例规则:
#iptables -A INPUT -s 10.0.0.100/32 -p tcp -m tcp --sport 53 -m u32 --u32 "0x36&0xf=0x3" -j DROP
#iptables -A INPUT -s 10.0.0.100/32 -p udp -m udp --sport 53 -m u32 --u32 "0x1c&0xf=0x3" -j DROP
您应该为每个上游DNS服务器设置这2条规则