権威サーバ引越し実験

2011.10.14

恣意的な要約

Google Public DNS (8.8.8.8) は浸透が遅い ;-P
(浸透いうな)

まじめな要約

「浸透遅い」と呼ばれるべき事象は見つからない。ごく一部疑問のある動作をするキャッシュサーバもあるが、適切な引越し手段をとっていれば問題になるものではないと考えられる。

実験環境

d.t.e-ontap.com は5分毎にお引越しをするドメインです。

t.e-ontap.com の権威サーバ ns.t.e-ontap.com から、d.t.e-ontap.com の委譲が行われていますが、委譲先が 5分毎に切り替わるようになっています。俗に言うDNSサーバのお引越しを演じているわけです。

毎時0分から5分までは次のように ns10.d.t.e-ontap.com に委譲されます。

authority: d.t.e-ontap.com. 420 NS ns10.d.t.e-ontap.com.
additional: ns10.d.t.e-ontap.com. 420 A 150.42.6.1

毎時5分から10分までは次のように ns5.d.t.e-ontap.com に委譲されます。

authority: d.t.e-ontap.com. 420 NS ns5.d.t.e-ontap.com.
additional: ns5.d.t.e-ontap.com. 420 A 150.42.6.5

その後も5分毎に、ns5 と ns10 へ交互に委譲先が切り替わります。

さて、5分毎に権威サーバとなる ns5 と ns10 では、それぞれ、a.d.t.e-ontap.com のAレコードを問い合わせると次のように応答するよう設定されています。('15/10/30 まで誤って ns5 と ns10 を逆に記述していました / 現在、臨時で NS の TTL を 90 にしています)

NS5
answer: a.d.t.e-ontap.com 60 A 192.0.2.5
authority: d.t.e-ontap.com 60 NS ns5.d.t.e-ontap.com
additional: ns5.d.t.e-ontap.com 60 A 150.42.6.5
NS10
answer: a.d.t.e-ontap.com 60 A 192.0.2.10
authority: d.t.e-ontap.com 60 NS ns10.d.t.e-ontap.com
additional: ns10.d.t.e-ontap.com 60 A 150.42.6.1

実験

さて、この a.d.t.e-ontap.com のAレコードを15秒毎に各所のDNSキャッシュサーバに問い合わせてみた結果が以下です。

例えば、dns3.sakura.ad.jp を見てみましょう。AレコードのTTLが切れたらちゃんとその時点の権威サーバを追って応答していることがわかります。

時刻                         ,キャッシュサーバの応答                ,その時刻に委譲を受けている権威サーバ/
Wed Oct 12 00:11:31 JST 2011 ,a.d.t.e-ontap.com. 60 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:11:46 JST 2011 ,a.d.t.e-ontap.com. 45 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:12:01 JST 2011 ,a.d.t.e-ontap.com. 30 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.
(snip)
Wed Oct 12 00:14:48 JST 2011 ,a.d.t.e-ontap.com. 45 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:15:04 JST 2011 ,a.d.t.e-ontap.com. 29 IN A 192.0.2.10 ,ns5.d.t.e-ontap.com.
Wed Oct 12 00:15:19 JST 2011 ,a.d.t.e-ontap.com. 14 IN A 192.0.2.10 ,ns5.d.t.e-ontap.com.
Wed Oct 12 00:15:34 JST 2011 ,a.d.t.e-ontap.com. 60 IN A 192.0.2.5 ,ns5.d.t.e-ontap.com.  <---
Wed Oct 12 00:15:49 JST 2011 ,a.d.t.e-ontap.com. 45 IN A 192.0.2.5 ,ns5.d.t.e-ontap.com.
(snip)
Wed Oct 12 00:19:37 JST 2011 ,a.d.t.e-ontap.com. 60 IN A 192.0.2.5 ,ns5.d.t.e-ontap.com.
Wed Oct 12 00:19:52 JST 2011 ,a.d.t.e-ontap.com. 45 IN A 192.0.2.5 ,ns5.d.t.e-ontap.com.
Wed Oct 12 00:20:07 JST 2011 ,a.d.t.e-ontap.com. 30 IN A 192.0.2.5 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:20:23 JST 2011 ,a.d.t.e-ontap.com. 14 IN A 192.0.2.5 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:20:38 JST 2011 ,a.d.t.e-ontap.com. 60 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com. <---
Wed Oct 12 00:20:53 JST 2011 ,a.d.t.e-ontap.com. 45 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.
Wed Oct 12 00:21:08 JST 2011 ,a.d.t.e-ontap.com. 30 IN A 192.0.2.10 ,ns10.d.t.e-ontap.com.

次に応答が速いと評判のGoogle Public DNS (8.8.8.8)を見てみましょう。省略(snip)せずにログを記載します。
AレコードのTTLが切れても、古い権威サーバからの応答をまたキャッシュしているように見えますね。
そして、最初の問い合わせから7分ほどかかって、やっと切り替わっています。その後も切り替わりの周期は7分です。

Sat Oct 8 22:12:02 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:12:18 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:12:33 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:12:48 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:13:03 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:13:19 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:13:34 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:13:49 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:14:05 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:14:20 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:14:35 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:14:50 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:15:05 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:15:21 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:15:36 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:15:51 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:16:06 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:16:22 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:16:37 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:16:52 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:17:07 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:17:23 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:17:38 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:17:53 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:18:08 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:18:24 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:18:39 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:18:54 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.10  ns5.internot.jp.
Sat Oct 8 22:19:09 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp. <---
Sat Oct 8 22:19:24 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:19:40 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:19:55 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:20:10 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:20:26 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:20:41 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:20:56 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:21:11 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:21:26 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:21:42 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:21:57 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:22:12 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:22:27 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:22:43 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:22:58 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:23:13 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:23:28 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:23:43 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:23:59 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:24:14 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:24:29 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:24:44 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:25:00 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:25:15 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:25:30 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:25:45 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:26:00 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:26:16 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:26:31 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:26:46 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:27:01 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:27:17 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:27:32 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:27:47 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:28:02 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:28:17 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:28:33 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:28:48 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:29:03 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:29:18 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:29:34 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:29:49 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns5.internot.jp.
Sat Oct 8 22:30:04 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:30:19 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:30:34 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:30:50 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:31:05 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:31:20 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:31:35 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:31:51 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:32:06 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:32:21 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:32:36 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:32:51 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:33:07 JST 2011  a.d.t.e-ontap.com. 14 IN A 192.0.2.5  ns10.internot.jp.
Sat Oct 8 22:33:22 JST 2011  a.d.t.e-ontap.com. 59 IN A 192.0.2.10  ns10.internot.jp. <---
Sat Oct 8 22:33:37 JST 2011  a.d.t.e-ontap.com. 44 IN A 192.0.2.10  ns10.internot.jp.
Sat Oct 8 22:33:52 JST 2011  a.d.t.e-ontap.com. 29 IN A 192.0.2.10  ns10.internot.jp

これはどういうことでしょうか。

権威サーバにおけるNSのTTLはAレコードと同じく60秒です。dns3.sakura.ad.jp では、このTTLにしたがって権威サーバを指すキャッシュが消えて、上位(委譲元)から新しい権威サーバのNSをキャッシュに入れています。

一方、Google Public DNS では古いサーバのキャッシュが消えるのに420秒かかっています。420秒というのは、上位(委譲元)に設定されている委譲用のNSのTTLなのです。Google Public DNS はこれをキャッシュしてしまっているようです。権威サーバ側のTTLはそれを上書きしないのですね。

実験結果

Google Public DNS と cns13.sphere.ad.jp (NTTPCの公開DNSSEC対応キャッシュサーバ) を除くキャッシュサーバたちは権威サーバのTTLに従っています。つまり、今回の実験のような条件下であれば、権威サーバでTTLを短くしておけば、お引越しは期待通りうまく行くといえるでしょう。

一方、Google Public DNS や cns13.sphere.ad.jp のユーザからみると、委譲元の長いTTLに引きずられ、なかなか新しい権威サーバの応答を得ることができない、つまりお引越しが期待(60秒)通りうまくいかないことになり「浸透が遅い」という言葉が発せられる状況となることが予想されます。期待が7分であれば問題ないですけどね。浸透が遅いなどと言って思考停止せず、動作を理解するとともに作業手順を見直しましょう。

* 実際には.comからの委譲のTTLは172800秒、www.example.com の引越しは2日待たされることになります。 .jpだと1日ですね。

2013.11.10 追記: OCNの顧客用キャッシュサーバ nv-kc541.ocn.ad.jp (Nominum CNS?)は多くのキャッシュサーバに負荷分散されていて動作が掴みにくいのですが、結局、委譲元の TTL に従っていることがわかりました。5秒間隔で同時に20回の query を送り TTL を記録した結果をプロットしたグラフを下に示します。委譲元の TTL 420秒に従っていることがわかります。(5分間隔のNSの切り替えの跨り方によるが7分または14分でキャッシュが切り替わっている)

課題

経験的には、8.8.8.8 は割と早く新しい権威サーバを見つけてくれている気がしています。今回実験したのとは違う条件、動作を考慮しないといけないのではないかと考えています。

また、ここでは NS が1つの場合でしたが、NSが2つある場合(浸透いうなその3のような)に同様の実験をしたらどうなるかがとても気になりますが、条件設定など面倒なのでまたの機会としたいと思います。


by T.Suzuki (Go back)