Bind configurado com sucesso para hospedar múltiplas visualizações com TSIG com esteguia. O problema é que quando adiciono uma terceira visualização à mistura, as coisas ficam estranhas.
Em cada servidor, tenho 3 visualizações no momento:
- EUA
- Europa
- China
No segundo em que adiciono a visualização da China, o servidor escravo usa a visualização da Europa quando deveria estar usando a visualização da China. Quando consulto o servidor mestre de um host da China, ele usa a visualização correta. Eu verifiquei as chaves em ambos os servidores e, embora meu servidor escravo correspondesse geoip à visualização da Europa, removi a declaração geoip da visualização da Europa apenas para ter certeza e ainda funciona.
ACLs em ambos os servidores:
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;
};
Mestre:
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";
};
};
Escravo:
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";
};
};
Completamente sem ideias. Se alguém souber o que estou fazendo de errado, agradeceria muito uma resposta.
Responder1
Na configuração escrava, as match-clients
diretivas estão faltando nas suas visualizações Europe
e .China
Com base na forma como as visualizações funcionam (a primeira visualização correspondente é usada), todas as consultas que não correspondem à sua USA
visualização (que tem sua match-clients
diretiva), todo o resto irá para a próxima visualização (sua Europe
visualização, que corresponde a qualquer coisa) e nada até o último view (sua China
visão, que também corresponderia a qualquer coisa, só que não há mais consultas sem correspondência nesse ponto).
Vale a pena notar que você provavelmente desejaalgopara ser o pega-tudo. Ou seja, se uma consulta não corresponder a nenhum dos países, você provavelmente ainda deseja uma resposta adequada?