[[FreeBSD8 bind9]]
#contents

http://www.atmarkit.co.jp/flinux/rensai/bind905/bind905b.html

*■rsyncを利用したゾーンファイルの転送 [#f21abc9c]

 「ゾーンデータの更新検知→ゾーンデータの複製→ゾーンデータの再読み込み」が実施できるのはゾーン転送だけではありません。皆さんもよくご存じのrsyncやrdistなどのリモートファイル同期ツールを利用することも可能なのです。

 「ゾーン転送で十分ではないか」と思われる方も多いと思いますが、BINDを運用している方の中には、たびたび報告されるゾーン転送の脆弱性に嫌気が差し、ゾーン転送を無効化してこれらのツールを利用する方もいます。rsyncやrdistは差分アップデートを備えており、効率のいい転送が行えます。さらにsshを利用することで、よりセキュアに操作できます。

 ゾーン転送を切り捨てた時点で、スレーブ・サーバをslaveで立ち上げることは無意味になります。マスター・サーバと同様に、スレーブ・サーバをmasterとして立ち上げます。

ns3.smb.net named.conf
 zone "kuji-clinic.net" IN {
 // 20100914 slave からmasterへ
 	type master;
 	file "back/kuji-clinic.net.zone";
 //	masters { 210.255.122.210; };
 //	allow-transfer { 210.255.122.210; };
 //	transfer-source		210.255.122.210;
 };
 };

named.confの一部。スレーブ・サーバのnamed.confを元に戻す 

 マスター・サーバからスレーブ・サーバに対して、rsyncでファイルコピーを行うには次のようにします。

 $ rsync -azb -e ssh /var/named/example.zone ユーザー名@スレーブ・サーバIP:/var/named/example.zone.bak 

 theseus# rsync -azb kuji-clinic.net.zone root@219.117.246.198:/etc/namedb/back/

|  -a|アーカイブモード|
|  -b|バックアップファイルを「~」の付いた名前で作成|
|  -u|より新しければ更新しな |
|  -v|実行過程を詳細表示|
|  -z|zlibを利用して圧縮転送を行う|
|  -e|ssh バージョン1を利用する場合は「ssh1」を指定|

 ユーザー名には、スレーブ・サーバの/var/named/に書き込み権限を持つユーザーを指定します。逆に、スレーブからマスターのファイルをダウンロードする際は、引数の順序を逆にします。

 $ rsync -auzb -e ssh ユーザー名@マスター・サーバIP:/var/named/example.zone /var/named/example.zone.bak 

 上記のコマンドラインを、/var/named/に書き込み権限を持つユーザーで実行します。お互いのサーバでsshが使え、rsyncがコマンドパスに入っているかどうかに注意してください。

 コピーが完了したらrndcを使い、ゾーンデータの再読み込みを行います。スレーブ(注)側で再読み込みを行わせるのは、通常どおり

 # /usr/local/sbin/rndc reload 

を実行します。

注:「マスター」と「スレーブ」を区別するのは、どちらのデータがよりオリジナルかという点に帰結します。 

 マスターからスレーブのrndcをリモート実行するには次のようにします。

 $ ssh ユーザー名@スレーブ・サーバIP '/usr/local/sbin/rndc reload'  

 theseus# ssh root@219.117.246.198 'rndc reload'
 Password:
 server reload successful

注:ファイルパスは環境に応じて適宜書き換えてください。ユーザー名は、スレーブにおいてsshが実行でき、rndcの実行権を持つユーザーである必要があります。 

 なお、reloadではゾーンファイルのタイムスタンプが重要になります。マスターとスレーブで時刻の設定にズレがないように、ntpdateなどで内部時計を合わせておきましょう。

 # ntpdate time.nist.gov 

 ここまでの操作を自動化させるには、sshのパスワード入力をssh-agentなどで省略したうえでスクリプトにまとめ、crontabで周期的に実行させる必要があり、単純な作業ではありません。ただし、ゾーンファイルの更新が頻繁でないのであれば、ここで紹介した手動によるアップデートの方が実用的です。

 rdistでも同様のことが行えます。また、scpを応用する方法も考えられますが、rsyncが使える環境ならrsyncを使用することをお勧めします。


http://piano.smb.net/~kuji/pukiwiki-1.4.7/index.php?cmd=read&page=Rsync%20de%20backup&word=rsync#n6b51802

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS