DNSの移行の確認について
概要
もともとXXX.XXX.XXX.XXXというIPで
DNSを管理していたのですが
今後はクラウド環境のYYY.YYY.YYY.YYY
のDNSサーバーに引っ越す事になりました
ゾーンファイルの内容は変えないので
そのままコピペで終了なのですが
YYY.YYY.YYY.YYYのサーバーに本当に反映されているのか
確認した
例
移行ドメイン:masalib.net
移行前DNS:XXX.XXX.XXX.XXX
移行後DNS:YYY.YYY.YYY.YYY
内容の確認手順
digコマンドで確認する
dig a +norec @XXX.XXX.XXX.XXX masalib.net ; <<>> DiG <<>> a @XXX.XXX.XXX.XXX masalib.net ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57650 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;masalib.net. IN A ;; AUTHORITY SECTION: masalib.net. 873 IN SOA ns-1692.awsdns-19.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 ;; Query time: 1 msec ;; SERVER: XXX.XXX.XXX.XXX#53(XXX.XXX.XXX.XXX) ;; WHEN: Fri Aug dd hh:mm:ss 2015 ;; MSG SIZE rcvd: 116
補足
aはAレコードを取得するというものです
”+norec”は再起問合せをしない
(ゾーンファイルがあるならしないでもとれる為)
”+nottlid”でTTLを非表示にすることができる
digコマンドのコメントを削除する手順
”;”で始まるのは実際には使っていない情報です
”;”で始まる部分は除外するプログラムを用意する
sanitize.pl
use strict; use warnings; use utf8; while (my $line = <stdin>){ chomp($line); if ($line =~/^\;/m ){ # print "出力しない"; }elsif ($line eq "" ){ # print "出力しない"; }else{ print "$line\r\n"; } }
digコマンドの標準出力した結果に対して実行する
dig a +norec @XXX.XXX.XXX.XXX masalib.net | perl sanitize.pl masalib.net. 900 IN SOA ns-1692.awsdns-19.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400
すっきりしました
内容の確認手順
これで比較しやすくなったので
移行前と移行後をくらべます
dig a +norec @XXX.XXX.XXX.XXX masalib.net | perl sanitize.pl >> before.txt dig a +norec @yyy.yyy.yyy.yyy masalib.net | perl sanitize.pl >> after.txt diff before.txt after.txt
2015/09/01追記
diffした結果は
・nsレコードに差分がある
・変更するためにTTLを短くしているのでその差分がある
・serial№は必ず差分が発生する
ちなみに移行前だと結果がちがうので
ここでも確認できるかも
# dig a +norec @XXX.XXX.XXX.XXX masalib.net | perl sanitize.pl masalib.net. 5 IN A 54.231.224.67 masalib.net. 172800 IN NS ns-1339.awsdns-39.org. masalib.net. 172800 IN NS ns-1615.awsdns-09.co.uk. masalib.net. 172800 IN NS ns-395.awsdns-49.com. masalib.net. 172800 IN NS ns-735.awsdns-27.net. # dig a +norec @yyy.yyy.yyy.yyy masalib.net | perl sanitize.pl com. 171417 IN NS k.gtld-servers.net. com. 171417 IN NS l.gtld-servers.net. com. 171417 IN NS m.gtld-servers.net. com. 171417 IN NS a.gtld-servers.net. com. 171417 IN NS b.gtld-servers.net. com. 171417 IN NS c.gtld-servers.net. com. 171417 IN NS d.gtld-servers.net. com. 171417 IN NS e.gtld-servers.net. com. 171417 IN NS f.gtld-servers.net. com. 171417 IN NS g.gtld-servers.net. com. 171417 IN NS h.gtld-servers.net. com. 171417 IN NS i.gtld-servers.net. com. 171417 IN NS j.gtld-servers.net.
実際に手順に落としてみると
digコマンドの知らないことがわかってよかった
SOAのレコードは+multilneのオプションを付けたほうがわかりやすかった
(出力した結果を1行ではなくていとうな所で改行してくれる機能)
なしの場合
dig soa +norec +nottlid @ns-1339.awsdns-39.org masalib.net | perl sanitize.pl masalib.net. IN SOA ns-1339.awsdns-39.org. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400 masalib.net. IN NS ns-1339.awsdns-39.org. masalib.net. IN NS ns-1615.awsdns-09.co.uk. masalib.net. IN NS ns-395.awsdns-49.com. masalib.net. IN NS ns-735.awsdns-27.net.
ありの場合
dig soa +norec +nottlid +multiline @ns-1339.awsdns-39.org masalib.net | perl sanitize.pl masalib.net. IN SOA ns-1339.awsdns-39.org. awsdns-hostmaster.amazon.com. ( 1 ; serial 7200 ; refresh (2 hours) 900 ; retry (15 minutes) 1209600 ; expire (2 weeks) 86400 ; minimum (1 day) ) masalib.net. IN NS ns-1339.awsdns-39.org. masalib.net. IN NS ns-1615.awsdns-09.co.uk. masalib.net. IN NS ns-395.awsdns-49.com. masalib.net. IN NS ns-735.awsdns-27.net.
明日はお休みなので
クローラーの作成の続きをおこないたいです