dnsmasq 不缓存非公共 dns 服务器

dnsmasq 不缓存非公共 dns 服务器

我尝试配置我的 dnsmasq 以根据域将请求转发到不同的 dns 服务器。

服务器=/a.example.org/192.168.aa
服务器=/b.example.org/bbbb
服务器=/c.example.org/8.8.8.8

现在缓存对 a 和 b 不起作用。我总是得到完整的 TTL。

192.168.aa 和 bbbb 是同一个 DNS 服务器。bbbb 是 example.org 的权威 DNS 服务器,因此 8.8.8.8 将请求转发到那里。
当我观察 dnsmasq 正在做什么时,我看到了以下内容:

tcpdump -ni 任何源端口 53 而不是目标端口 127.0.0.1
07:14:45.680354 IP 192.168.aa53 > dnsmasq.36892: 400*- 1/0/1 A xxxx (70)
07:14:45.713410 IP bbbb53 > dnsmasq.50966: 8767*- 1/0/1 A xxxx (70)
07:14:45.770882 IP 8.8.8.8.53 > dnsmasq.35365: 3482 1/0/1 A xxxx (70)

07:14:55.850404 IP 192.168.aa53 > dnsmasq.20329:11717*- 1/0/1 A xxxx (70) 07
:14:55.885077 IP bbbb53 > dnsmasq.39750:21076*- 1/0/1 A xxxx (70)

07:15:05.965831 IP 192.168.aa53 > dnsmasq.21312:34541*- 1/0/1 A xxxx (70) 07:15
:06.000209 IP bbbb53 > dnsmasq.48898:28729*- 1/0/1 A xxxx (70)

因此 dnsmasq 仅缓存首先通过 google 的请求。我这里遗漏了什么?为什么 dnsmasq 不缓存对 a 和 b 的请求?

相关内容