ドメインに応じて異なる DNS サーバーにリクエストを転送するように dnsmasq を設定しようとしました。
サーバー=/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 任意の src ポート 53 かつ dst 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 へのリクエストをキャッシュしないのはなぜですか?