DNS の浸透を早く確実に行うためには

普通の人にはどうでもよいことだけど、この前のエントリ以来、問題をよく考え直したので新しく記事を書いてみます。
分かりにくいところや間違っているところがあればお気軽にコメントしてください。

問題となるケース

"DNSの浸透"が問題となるケースは2種類あって、サーバー引っ越しに際して、

  1. ネームサーバーの移行を同時に伴う場合
    (例:ムームードメインロリポップさくらインターネットドメイン管理付き)
  2. ネームサーバーの管理をそのままでWebサーバーのみ引っ越す場合
    (例:VALUE-DOMAINXREAVALUE-DOMAINさくらインターネット)

浸透が遅くなる場合

予想に反して移行に時間(最大丸2日)がかかるケースとは、

  • 1番のケースで、移行元のネームサーバー情報が延々と使われるとき
    • 移行元のネームサーバーが、ROOT-SERVERS からの権威継承ツリーから外れたものの、延々と自らは権威サーバーであるという返答を返し続ける場合
    • 浸透の完了は ROOT-SERVERS の応答のキャッシュが Expire するまで、すなわち丸2日かかる
  • Aレコードの TTL が無駄に長く設定されている場合 (GMOドメインスクワッティングサイトのTTLにご注意!)。

こうすれば良い

Webサーバーと DNSサーバーを同時に変更し取りこぼしなくDNSを浸透させる手順

  1. DNS レコードの TTL を短く(1時間未満)する
  2. 移転先のWebサーバーを借りてコンテンツを準備しておく
  3. 【重要】移行元のDNS設定で、AレコードのWebサーバーのIPアドレスを移転先のものに更新する
  4. 移行元のWebサーバーは借りたまま、移行先でドメインの移管・DNSレコードの設定・DNSサーバーの変更を行う
  5. (できれば) 移行元のDNSを更新し、NSレコードを移行先のものに変更する
  6. 移行元のWebサーバーへのアクセスが収束してから(~1週間)、移行元のDNSサーバーを停止する

残念なお知らせ

大抵のドメイン屋さんは、ドメインを他所に移管すると、即座にDNSサーバーが死ぬ素敵仕様なので、DNSサーバーを別に借りて、なるべくDNSサーバーを動かさない運用が一番良いと思います。なので、あらかじめ Amazon Route53 や DynDNS などDNSホスティングサービスに移行しておくとスムーズなはずです。