DNS移設時に気を付けるべきこと


DNS移設って?

あまり頻繁には発生しないけど、DNSサーバを変更するときに(特に外部業者に委託しているケースとかで)起きるやつ。
オンプレからクラウドに持っていくときも起きるのかな。

いずれにせよ、自分のドメインの名前解決を行うサーバが変更される事。もっというと、権威DNSサーバの変更の事。
色々なところで、色々な人が、似たようなことを書いていると思うけど、
移設前権威DNSサーバのNSレコード更新だけは忘れるな!!

目次

 1.DNSの概要
 2.引っ越しの手順
 3.まとめ

1.DNSの概要

DNSには大きく2種類ある。
 ・権威DNSサーバ(Authoritative DNS)
 ・DNSキャッシュサーバ(resolveするから「リゾルバ」とも呼ぶ)
  ※日本語のせいで分かりにくいという説もある。俺もそう思う。

1-1 権威DNSサーバ?

「偉いDNSサーバ」くらいの意味。
そのドメインのIPアドレスを管理しているサーバのこと。
「URLをIPアドレスに変換する機能」を有したサーバ。

自分の管理下にあるサーバのURLとIPアドレスの対応表を持っているイメージ。
で、ユーザ側がそのURLにアクセスしに来た時に、IPアドレスを答えてあげるのがお仕事。

<例> 持っている対応表

URL(FQDN) IPアドレス
web1.hoge.co.jp 333.1.2.3
web2.hoge.co.jp 333.3.2.1

 問合せ:web1.hoge.co.jpのIPアドレス教えてください
 回 答:IPアドレスは333.1.2.3です

1-2 DNSキャッシュサーバ(リゾルバ)

「でも同じ企業なのに、毎回自分で問い合わせにいくのって非効率じゃない?」
って考えがあるのかは知らんけど、問い合わせに行く専用のサーバがいる。それがリゾルバ。(resolve(解決)してくれる人)
「どうせ専用なんだったら、しょっちゅう開くURLのIPとかは一時保存しといたほうが早くね?」という訳で、DNSのデータを一時保存(キャッシュ)してる。
だからDNSキャッシュサーバとも呼ばれる。

移設のステップ

 ①移設元権威DNSサーバと移設先権威DNSサーバのレコード状態を同じにしておく
 ②移設元権威DNSサーバのNSレコードを移設先権威DNSサーバに向けておく
 ③親の権威DNSサーバーで、移設先を指し示す
 ④TTLが切れるまで並行運用して、TTLが切れたら(古いDNSが使われなくなったら)古い方を捨てる

ポイントは②のステップ。多分①と③、④は対応してくれるはず。
(①はどうかな…同期してるのが一番いいんだけど…。)

②を行わないとどうなる?

例えば以下のケースがあったとする
移設前の権威DNSサーバ:ns1.hoge.co.jp
移設後の権威DNSサーバ:ns1new.hoge.co.jp

まず移設前の状態で"web1.hoge.co.jp"名前解決すると、DNSキャッシュサーバ的には以下の状態になる
 ※TTL(Time To Live)とは、「どれくらいの間、その情報を保存するか」という数値。
 名前解決結果:web1.hoge.co.jp 333.1.2.3 TTL:300秒
 回答元   :ns1.hoge.co.jp TTL:3600秒

当然、この状態で切替を行ったとしても、上記のキャッシュは残ったままになる。
問題なのはこの後。例えば400秒後に再度名前解決したとすると、
キャッシュに回答元の情報を持っている為に、また古いサーバに聞きに行く。
場合によっては回答元のTTLが最新化されるから、一生新しいほうに向かない。

3.まとめ

ざっくりと、DNSの概要と移設の大まかな流れ、その背景を書きました。
DNS周りのことも考える必要はあると思うけれど、何かの参考になれば。