サーバー移転に伴う「DNSの浸透がー!」問題をなくすためには


追記:
今回紹介する例はDNSの移転を伴わない場合です。
DNSの移転を伴う場合は、これ以外の手順が必要です。

ちょっとね、先日、札幌のウェブ屋さんと一揉めしたので記事として残しておきますわ。ウェブ屋さんの中にはホスティングサービスを提供している会社もあるけど、このTipsを知らない人が多いようなので。

サーバーを移転すると、だいたい問題になるのが「DNSが浸透するまで二、三日かかります」という問題ですね。まぁ、単にウェブサイトだけなら問題ない話ではあるのですが、メールサーバーとなるとそうは問屋が卸さないわけです。昔ながらのTipsとしては、旧サーバーにメールが来なくなるまでの間、クライアントは新旧両方のサーバーを見に行くというのがありましたが、不便極まりありません。

僕自身が今までに何度かサーバーを移転する中で「これが最適解!」と思えるものがありますので紹介しておきます。

それは、移転日の一週間くらい前にDNSのTTLを短かくしておくというものです。実は、これがウェブ屋さんと揉めたところなんですが…

一般的にDNSのTTL(いわゆる生存期間と呼ばれるもの)は86,400秒(=24時間)に設定されています。で、DNSの情報はキャッシュサーバーという所に一時的に情報を蓄えることで過剰な問い合わせを防ぐ仕組みになっています。キャッシュサーバーへの蓄積時間はTTLで指定した時間になるため、多段階で蓄積されたことを想定して「DNSが浸透するまで二、三日かかります」というのが言われたりしているわけです。でも、先に書いた通り「二、三日も待つのは面倒」ですよね。ならば、いっその事、TTLを短くしてしまえばどうでしょう?

という事で、ウチでは移転日の1週間くらい前にTTLを300秒(=5分)にしてしまっています。これだと、最悪でも1時間もかからずに切り替えを完了する事ができるからです。実際にやってみたところ「概ね10分以内」に切り替えが完了した事を確認できています。その後、移転日翌日くらいに再びTTLを86,400秒(=24時間)に戻してやればいいわけです。簡単ですね。

ところが、ホスティングサービスも提供しているウェブ屋さんにその指示を出すと「やったことないからできない」って言われたわけですよ。「ハァ?」っていう感じなんですが、そういう人は未だに「DNSが浸透するまで二、三日かかります」という都市伝説を信じていたりするんでしょうねぇ。ということで、どこを書き換えればいいか掲載しておきますね。いじるのはゾーンファイルです。

$TTL	86400							← ここを短くする
@		IN SOA	ns.example.jp.	root (
				2014050501	; serial	← 適宜カウントアップ
				3H		; refresh
				15M		; retry
				1W		; expire
				1D	)	; minimum

		IN NS		ns.example.jp.
		IN MX 10	mail.example.jp.

		IN A		xxx.xxx.xxx.xxx
ns		IN A		xxx.xxx.xxx.xxx
www		IN A		xxx.xxx.xxx.xxx
mail		IN A		xxx.xxx.xxx.xxx
example.jp.	IN TXT		"v=spf1 a:mail.example.jp -all"

こんな感じですね。serialは慣習的にゾーンファイルを書き換えた年月日+2桁のカウントという感じで記載します。ここがカウントアップされていないと新しいものとみなされないので反映されません。要注意です。


2 thoughts on “サーバー移転に伴う「DNSの浸透がー!」問題をなくすためには

    1. 管理人 Post author

      NSを移転しない場合のことを書きました。
      NSを移転する場合については、おっしゃる通りなのは理解しております。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です