Skip to content

Instantly share code, notes, and snippets.

@gb-swatanabe
Last active August 29, 2015 14:26
Show Gist options
  • Save gb-swatanabe/3a569897ca3ebc0c9b36 to your computer and use it in GitHub Desktop.
Save gb-swatanabe/3a569897ca3ebc0c9b36 to your computer and use it in GitHub Desktop.
DNSゾーンファイルの取得(一括モードあり)
#!/bin/bash
# usage: $0 <zone> <server>
zone=$1
server=$2
if [ "$zone" = "--all" ];then
echo "** DUMP MODE **" >&2
for z in $(awk -F\" '/^zone/{print $2}' /etc/bind/named.conf.local)
do
echo " - $z" >&2
$0 $z $server
done
else
mkdir -p $server
dig @$server axfr $zone | sort > $server/$zone.zone
fi
@gb-swatanabe
Copy link
Author

  • DNSスレーブサーバで実行する
  • 指定したゾーンの内容を指定したDNSマスタサーバから取得(AXFR)しファイルに保存
  • 「サーバ名」のディレクトリを自動的に作成しその下に保存する、ただしファイルの内容はsortされている(AXFRしたそのままではない。理由は後述)
  • ゾーン名に--allを指定した場合は、/etc/bind/named.conf.localを参照し全て一括で取得する
  • 複数のDNSマスタサーバのゾーン設定状態を取得し比較することが可能(その為RRの影響を排除するためにsortしてある)
$ ./axfr.sh --all ns1.example.com
$ ./axfr.sh --all ns2.example.com
$ diff -I "^;" -ubr ns?.example.com/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment