これにより、TSIGを使用して複数のビューをホストするようにBindを正常に構成できました。ガイド問題は、3 番目のビューを追加すると、状況がおかしくなることです。
各サーバーには現在 3 つのビューがあります。
- アメリカ合衆国
- ヨーロッパ
- 中国
中国ビューを追加した瞬間、スレーブ サーバーは中国ビューを使用するべきときにヨーロッパ ビューを使用します。中国のホストからマスター サーバーにクエリを実行すると、正しいビューが使用されます。両方のサーバーでキーを検証しましたが、スレーブ サーバーの geoip はヨーロッパ ビューと一致しますが、念のためヨーロッパ ビューから geoip ステートメントを削除しましたが、それでも一致します。
両方のサーバーの ACL:
acl "USA" {
key usa-key;
!key europe-key;
!key china-key;
geoip country US;
};
acl "Europe" {
key europe-key;
!key usa-key;
!key china-key;
geoip country NO;
};
acl "China" {
key china-key;
!key usa-key;
!key europe-key;
geoip country CN;
};
マスター:
view "USA" {
match-clients { USA; };
allow-transfer { key usa-key; };
zone "domain.net." {
type master;
also-notify { $slave_server key usa-key; };
file "/etc/bind/domain.net/na.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type master;
also-notify { $slave_server key usa-key; };
file "/etc/bind/domain.net/na.domain.net.rev";
};
zone "doma.net." {
type master;
also-notify { $slave_server key usa-key; };
file "/etc/bind/domain.net/na.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type master;
also-notify { $slave_server key usa-key; };
file "/etc/bind/domain.net/na.doma.net.rev";
};
};
view "Europe" {
match-clients { Europe; };
allow-transfer { key europe-key; };
zone "domain.net." {
type master;
also-notify { $slave_server key europe-key; };
file "/etc/bind/domain.net/eu.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type master;
also-notify { $slave_server key europe-key; };
file "/etc/bind/domain.net/eu.domain.net.rev";
};
zone "doma.net." {
type master;
also-notify { $slave_server key europe-key; };
file "/etc/bind/domain.net/eu.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type master;
also-notify { $slave_server key europe-key; };
file "/etc/bind/domain.net/eu.doma.net.rev";
};
};
view "China" {
match-clients { China; };
allow-transfer { key china-key; };
zone "domain.net." {
type master;
also-notify { $slave_server key china-key; };
file "/etc/bind/domain.net/cn.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type master;
also-notify { $slave_server key china-key; };
file "/etc/bind/domain.net/cn.domain.net.rev";
};
zone "doma.net." {
type master;
also-notify { $slave_server key china-key; };
file "/etc/bind/domain.net/cn.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type master;
also-notify { $slave_server key china-key; };
file "/etc/bind/domain.net/cn.doma.net.rev";
};
};
奴隷:
view "USA" {
match-clients { USA; };
zone "domain.net." {
type slave;
masters { $master_server key usa-key; };
file "/var/lib/bind/na.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type slave;
masters { $master_server key usa-key; };
file "/var/lib/bind/na.domain.net.rev";
};
zone "doma.net." {
type slave;
masters { $master_server key usa-key; };
file "/var/lib/bind/na.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type slave;
masters { $master_server key usa-key; };
file "/var/lib/bind/na.doma.net.rev";
};
};
view "Europe" {
zone "domain.net." {
type slave;
masters { $master_server key europe-key; };
file "/var/lib/bind/eu.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type slave;
masters { $master_server key europe-key; };
file "/var/lib/bind/eu.domain.net.rev";
};
zone "doma.net." {
type slave;
masters { $master_server key europe-key; };
file "/var/lib/bind/eu.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type slave;
masters { $master_server key europe-key; };
file "/var/lib/bind/eu.doma.net.rev";
};
};
view "China" {
zone "domain.net." {
type slave;
masters { $master_server key china-key; };
file "/var/lib/bind/ch.domain.net.zone";
};
zone "3.2.1.in-addr.arpa." {
type slave;
masters { $master_server key china-key; };
file "/var/lib/bind/ch.domain.net.rev";
};
zone "doma.net." {
type slave;
masters { $master_server key china-key; };
file "/var/lib/bind/ch.doma.net.zone";
};
zone "9.8.7.in-addr.arpa." {
type slave;
masters { $master_server key china-key; };
file "/var/lib/bind/ch.doma.net.rev";
};
};
まったくアイデアが出てきません。私が何を間違っているのか知っている方がいらっしゃいましたら、ご返答いただければ幸いです。
答え1
スレーブ構成では、ビューとビューmatch-clients
にディレクティブがありません。Europe
China
ビューの動作方法 (最初に一致するビューが使用される) に基づいて、USA
ビュー (ディレクティブがあるmatch-clients
) に一致しなかったすべてのクエリと、その他すべては次のビュー (何にでも一致するビュー) に移動しEurope
、最後のビュー (China
これも何にでも一致するビューですが、その時点では一致しないクエリは残っていません) には何も移動しません。
注目すべきは、おそらく何かすべてを網羅する。つまり、クエリがどの国にも一致しない場合でも、適切な応答が求められるのではないでしょうか。