BIND9でviewに含まれるゾーンのスレーブ(slave)を設定する(基本)





BIND9でviewに含まれるゾーンのスレーブ(slave)を設定する方法は次の通り。

こちらで問い合わせ元によって異なる回答を返す設定を行ったが、
その場合、1つのゾーンに対して
複数のゾーンファイルが存在することになる。

このような場合、スレーブはどのゾーンファイルを
ゾーン転送でもらってくるのだろうか。

また、スレーブ側もプライマリ同様viewを設定している場合、
view毎に異なるゾーンファイルをもらってこなければならない。

これを解決する方法は次の通り。

まず、スレーブがviewを設定していない場合。

この場合は単純で、プライマリのアクセスコントロールリスト(ACL)を使う。
スレーブは特別な設定は不要、普通のスレーブとして設定する。

スレーブのIPアドレスが狙いのviewに当てはまるように
ACLに定義する。

プライマリ・スレーブのIPアドレス
プライマリ:1.1.1.100
スレーブ:1.1.1.200

プライマリのnamed.conf
acl zone1 { 1.1.1/24; };

view zone1 {

	match-clients { zone1; };

	zone "test.example.com" {
		type master;
		file "db.test.example.com.zone1";
	};

};

view zone2 {

	match-clients { any; };

	zone "test.example.com" {
		type master;
		file "db.test.example.com.zone2";
	};

};

この場合にスレーブにzone1のゾーンファイルを転送したい場合は、
ACLは変更する必要はない。

1.1.1.200はACL「zone1」にマッチするため、
スレーブはzone1のゾーンファイルをもらってくる。

zone2のゾーンファイルを転送したい場合は、
ACLを次のように変更する必要がある。

acl zone1 { ! 1.1.1.200; 1.1.1/24; };

これによって、1.1.1.200はACL「zone1」にはマッチせず、
ACL「any」とマッチするため、
zone2のゾーンファイルをもらってくることになる。