DNSサーバーの移転ついて
今回は、現状運用してるDNSサーバーを別のサーバーに移転することになり、そのノウハウを記事にしてみました。
DNSサーバーの仕組み
DNSサーバーを移転するに辺り、DNSサーバーの仕組みについて簡単に触れておきたいとおもいます。
DNSサーバーには2つの種類が存在します。
権威DNSサーバー
権威DNSサーバーとは、自身が管理するゾーン情報(ドメイン名とIPアドレスの紐づけ等)を保持し、問い合わせに対して自身が管理している情報のみを答えます。
ゾーン情報
test.co.jp A 111.22.332.44 //test.co.jpのIPアドレスは「111.22.332.44」 test.co.jp MX mail.test.com //test.co.jpのメールサーバーは「mail.test.com」 test.co.jp NS old_ns1.test.com //test.co.jpのプライマリDNSサーバーは「old_ns1.test.com」 test.co.jp NS old_ns2.test.com //test.co.jpのセカンダリDNSサーバーは「old_ns2.test.com」 ・ ・ ・
DNSキャッシュサーバー
クライアントからあるドメイン名の名前解決のリクエストを受け、該当ドメイン名を管理する権威DNSサーバへの問い合わせを行い結果を返却する。
また、問い合わせ結果は一定期間(TTL値で)保存され、期間内に同じ問い合わせが来た時には保存した内容を返却する。
一定期間が経過すると新に権威DNSサーバへの問い合わせを行う。
TTL
TTL(Time To Live)とは、一旦DNS経由でドメイン名の名前を解決(ドメイン名とIPアドレスの紐づけ)した場合、その情報をキャッシュしておく時間(数値は秒)である。
DNSサーバーの移転で注意すべき点
移転の際に注意すべき事項として下記2点があります。
DNSサーバーの移転方法について
上記注意すべき点を考慮したDNSサーバーの移転方法は下記のようになります。
1. 移転先の権威DNSサーバーの構築
移転先の権威DNSサーバーに新しいゾーン情報及び新しいNSレコードを設定する。 その他変更が無いゾーン情報はそのまま設定する
2. 移転元ゾーン情報の切り替え
移転元の権威DNSサーバーのゾーン情報を、新しいゾーン情報(移転先データ)に切り替える
※移転元のTTLが、短時間で切り替わる様に短くしておく
※NSレコードは移転先の情報を設定する
3. 親(レジストラ)に登録した委任情報の切り替え
親に登録している委任情報(NSレコード情報等)の変更を申請し、移転先の権威DNSサーバーに切り替える
4. TTLが切れるまで移転元と移転先の権威DNSサーバーを並行運用する
すべてのDNSキャッシュサーバー群が移転先の権威DNSサーバーのみを参照するようになるまで、DNSサーバーを並行運用します。
5.動作確認
TTLが切れたら、DNSサーバーが切り替わった事を確認する方法を記載します
Linux環境
dig NS ドメイン名
[test@ ~]# dig ns test.co.jp ;; QUESTION SECTION: ;test.co.jp. IN NS ;; ANSWER SECTION: test.co.jp. 300 IN NS new_ns1.test.com. //NSレコードが移転先に切り替わった事を確認 test.co.jp. 300 IN NS new_ns2.test.com. //NSレコードが移転先に切り替わった事を確認
Windows環境
nslookup
set type=ns
ドメイン名
※コマンドプロンプトから確認
C:\nslookup > set type=ns > test.co.jp サーバー: xxxx.xxx.xx Address: 111.22.33.444 権限のない回答: test.co.jp nameserver = new_ns1.test.com test.co.jp nameserver = new_ns2.test.com ※「権限のない回答とは」DNSキャッシュを使って回答している事を示している
6. 移転元の権威DNSサーバーの停止
DNSサーバーが切り替わった事を確認できたら移転元権威DNSサーバーを停止する
まとめ
DNSサーバーは普段はあまり接する機会が無いので、忘れてしまっている部分がありましたが、今回の移転で振り返る事が出来て良い機会になりました。
DNSサーバーの基本的な仕組みは是非押さえておくと良いと思います。