1. 亡霊の正体
動作を続けている古いDNS(コンテンツ)サーバが発生源だ。
- しかし、それだけでは亡霊は存在し続けられない。
2. TTLが更新される
DNSレコードの変更、とりわけNSレコード関連の変更がキャッシュに取り込まれない問題(いわゆる/浸透問題)は
- キャッシュにある情報のTTLよりも新たに送られてきた返答中のTTLを優先することにより発生する。 (djbdnsのdnscache はそのような動作をする。 古いunboudや9.2以前のbindも)
3. 解決法
キャッシュサーバではすでにキャッシュされているレコードのTTLを伸ばすような変更は行わないことにすればよい。
多少の効率を犠牲にして、浸透問題の発生を抑止できる。 -- ToshinoriMaeno 2011-08-10 23:45:47
/dnscacheでのテスト結果; 期待通りの動作をしている。 -- ToshinoriMaeno 2011-08-11 11:09:07
このような動作をするキャッシュサーバはすでに多数存在する。 /unboundの動作
- BIND9もそうだ。いつからかは分かっていない。
4. 再調査
共用キャッシュサーバの振る舞いを調べてみる。 DNS/キャッシュサーバ比較/TTLの更新 -- ToshinoriMaeno 2011-08-14 01:38:43
- authority/additional section のレコードにより、TTLを上書きして長くする共用キャッシュサーバが複数存在する。
また、キャッシュ満了寸前に(キャッシュしている同じサーバに)問い合わせしなおす、という設定もあるかもしれない。
これでも、浸透問題は続くことになる。-- ToshinoriMaeno 2011-08-11 15:16:46
権威サーバと同居しているキャッシュサーバでの浸透遅延問題はキャッシュの問題ではない。
コンテンツサーバの設定したTTLは尊重される
http://www.e-ontap.com/dns/propagation/ttl.html Aレコードが5分毎に書き換わる a.t.e-ontap.com