Configurei um único servidor DNS com bind9 e uma configuração de dns dividida para que todas as solicitações internas do meu nome de domínio obtivessem o endereço IP interno e todas as solicitações de fora da minha rede obtivessem o endereço oficial (que são roteadas pelo Firewall Cisco ASA, mas acabará por atingir os mesmos sistemas).
Quando uso o nsupdate da minha rede interna, a zona interna é atualizada. Da mesma forma, quando executo nsupdate em um sistema externo (com TSIG), a zona externa é atualizada.
No entanto, eu preferiria poder atualizar todos os dados DNS de dentro da rede interna. O problema parece ser que eu posso definir várias visualizações para o meu nome de domínio, mas bind9 identifica a zona a ser usada pelo endereço IP do cliente, de acordo com o meu views.conf. Portanto, quando é um endereço IP interno, a zona interna é recuperada ou atualizada, mas não é possível atualizar a zona externa de um sistema interno.
Eu também tentei usar duas chaves TSIG diferentes na esperança de que bind9 possa identificar a zona externa pela chave, o que também não funciona:
Aug 26 11:04:22 s1006 named[13444]: client 10.1.1.6#39841: view internal: signer "external" denied
Aug 26 11:04:22 s1006 named[13444]: client 10.1.1.6#39841: view internal: update 'example.org/IN' denied
Aqui estão as configurações relevantes da bind9:
view "internal" {
match-clients {
10.1.1.6;
};
recursion yes;
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/zones/example.org-internal.conf";
};
view "external" {
match-clients {
10.1.1.3;
};
recursion no;
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/zones/example.org-external.conf";
};
key internal {
algorithm hmac-md5;
secret "x2ZKW4SxbeySMK7PmV1Nng==";
};
key external {
algorithm hmac-md5;
secret "kiHB9BR6IeSmUUnp1QMCcA==";
};
zone "example.org" {
type master;
file "/var/cache/bind/example.org-internal/example.org";
notify yes;
allow-update {
key internal;
};
};
zone "example.org" {
type master;
file "/var/cache/bind/example.org-external/example.org";
notify yes;
allow-update {
key external;
};
};
Nota: para fins de teste, as visualizações são configuradas de modo que todas as solicitações de 10.1.1.3 sejam "externas" e de 10.1.1.6 sejam consideradas "internas".
Por favor, informe como configurar isso para que eu possa atualizar a zona externa executando o nsupdate no 10.1.1.6 ao invés do 10.1.1.3. Além disso, se você acha que essa configuração em particular é uma ideia realmente idiota, por favor me avise.