ドメインのネームサーバーを新しい DNS サービスに切り替える作業を行っています。新しい設定を既存の DNS 設定と比較するのに最適なツールは何ですか。
古いプロバイダーと新しいプロバイダーの間で DNS レコードが一致することを確認できるように、@nameserver の有無にかかわらず、dig を使用しようとしました。
これまでのところ成功していません。
何か案は ?
ドメインのネームサーバーを新しい DNS サービスに切り替える作業を行っています。新しい設定を既存の DNS 設定と比較するのに最適なツールは何ですか。
古いプロバイダーと新しいプロバイダーの間で DNS レコードが一致することを確認できるように、@nameserver の有無にかかわらず、dig を使用しようとしました。
これまでのところ成功していません。
何か案は ?
そしてええ!コードソースの回答からインスピレーションを得て、既知のゾーンファイルからチェックするためにこれを作成しました。ANY クエリはフル ゾーンを出力しないためです。
入力はバインド形式のゾーンファイルで、最初のフィールドは必須で完全です!! 空の最初のフィールドまたは短縮されたフィールドはまだサポートされていません!
zone=test.txt; ns1=ns1.test.com; ns2=ns2.test.com; \
zcl=$(basename ${zone} .txt)_cl.txt; zl1=$(basename ${zcl} .txt)_${ns1}.log; zl2=$(basename ${zcl} .txt)_${ns2}.log; \
echo "Diffing the stuff in $zcl (from $zone) for $ns1 <-> $ns2" >&2 ;echo " loggings to $zl1, $zl2" >&2 ; \
cat $zone | awk 'BEGIN {IFS=" "} $1 !~ /^;|^[[:space:]]+|^$/ {t=$4; if (!match($2,/[[:digit:]]/)) t=$3; n=$1; print n " " t }' | sort -u > $zcl ; \
diff <(sort -u <(while read host type; do echo "Q $host $type" >&2; dig +nottlid +noall +answer @$ns1 $host $type; done < $zcl) | tee $zl1 ) \
<(sort -u <(while read host type; do dig +nottlid +noall +answer @$ns2 $host $type; done < $zcl) | tee $zl2 ) && echo "OK"
このスクリプトは、移行中に 2 つのゾーン ファイルを比較するために作成されました。
色分けと最終ステータス出力を使用して、どのレコードが異なるかを示します
SOA と NS レコードは移行中に異なります - 違いに注意してください
上記のタイプが含まれているため、ANYレコードもおそらく異なるでしょう。
MX レコードと TXT レコードが存在する場合、それらは同じである必要があります。ここでの違いは問題を意味します。