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のゾーンファイルをもらってくることになる。