我嘗試配置我的 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 任何 src 埠 53 而不是 dst 127.0.0.1
07:14:45.680354 IP 192.168.aa53 > dnsmasq.36892: 400*- 1/0/1 A xxxx (70) 0075: 400*- 1/0/1 A xxxx (
70 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 bb53xxx (70)
07:14:55.885077 IP bb53xxx (70) 07:14:55.885077 IP bb53xxx (70) 07:14:55.885077 IP bb53xxx (70 70)07:15:05.965831 IP 192.168.aa53 > dnsmasq.21312: 34541*- 1/0/1 A xxxx (70) 07:15:06.000209 IP bb53xxx (70)
07:15:06.000209 IP bb53xxx (70) 07:15:06.000209 IP bb53xxx (70) 07:15:06.000209 IP bb53xxx > dnsmas.48898: 487 70)
所以 dnsmasq 只快取先透過 google 的請求。我在這裡缺少什麼?為什麼 dnsmasq 不緩存對 a 和 b 的請求?