Я попытался настроить свой dnsmasq для пересылки запросов на разные DNS-серверы в зависимости от домена.
server = / a.example.org / 192.168.a.a
server = / b.example.org / b.b.b.b
сервер = / c.example.org / 8.8.8.8
Теперь кеширование не работает для a и b. Я всегда получаю обратно полный TTL.
192.168.a.a и b.b.b.b - это один и тот же DNS-сервер. b.b.b.b - это авторитетный DNS-сервер для example.org, поэтому 8.8.8.8 пересылает туда запросы.
Когда я смотрю, что делает dnsmasq, я вижу следующее:
tcpdump -ni любой порт src 53, а не dst 127.0.0.1
07: 14: 45.680354 IP 192.168.a.a.53> dnsmasq.36892: 400 * - 1/0/1 A x.x.x.x (70)
07: 14: 45.713410 IP b.b.b.b.53> dnsmasq.50966: 8767 * - 1/0/1 A x.x.x.x (70)
07: 14: 45.770882 IP 8.8.8.8.53> dnsmasq.35365: 3482 1/0/1 A x.x.x.x (70)07: 14: 55.850404 IP 192.168.a.a.53> dnsmasq.20329: 11717 * - 1/0/1 A x.x.x.x (70)
07: 14: 55.885077 IP b.b.b.b.53> dnsmasq.39750: 21076 * - 1/0/1 A x.x.x.x (70)07: 15: 05.965831 IP 192.168.a.a.53> dnsmasq.21312: 34541 * - 1/0/1 A x.x.x.x (70)
07: 15: 06.000209 IP b.b.b.b.53> dnsmasq.48898: 28729 * - 1/0/1 A x.x.x.x (70)
поэтому dnsmasq кэширует только тот запрос, который первым прошел через Google. Что мне здесь не хватает? Почему dnsmasq не кэширует запросы к a и b?