Aqui está o rápido e sujo: no BIND9 com uma zona dinâmica que é compartilhada entre visualizações , fazer um nsupdate, atualizar / criar / excluir um registro funcionará bem se eu procurar esse registro de um cliente que caia na mesma visualização que o nsupdate de.
Consultar a partir de uma exibição que não é a mesma que eu costumava nsupdate lançará NXDOMAIN (se estiver adicionando um novo registro) ou mostrará informações antigas do registro no caso de uma alteração / atualização até um período arbitrário (por exemplo, 15 minutos) passa, ou eu o faço forçosamente $ rndc freeze && rndc thaw
. $ rndc sync
parece não fazer nada para resolver o problema - eu esperava que fosse apenas um arquivo de diário, uma vez que as liberações do diário estão documentadas para liberar em torno de 15 minutos.
Se isso não estiver claro, aqui estão alguns pseudocódigos para começar:
Visualizações BIND
view "cdn-redir" {
match-clients { 10.1.1.0/24; 10.1.2.0/24; };
include "cdn-zone.db";
include "dynamic-zone.db";
};
view "default" {
match-clients { any; };
include "dynamic-zone.db";
};
Exemplo de linha de comando
user@ns:~$ nsupdate -k rndc.key
> server localhost
> zone example.com.
> update add foohost.example.com. 600 A 10.5.6.7
> send
> quit
user@ns:~$ dig foohost.example.com (resolv.conf points to 127.0.0.1)
[ responds with correct answer 10.5.6.7 ]
Em outros lugares, um host que fica na mesma visualização que o nsupdate
user@10.11.12.50:~$ foohost.example.com (resolv.conf points to above nameserver)
[ responds with correct answer 10.5.6.7 ]
Em outros lugares, o host cai em uma visão diferente como o nsupdate
user@10.1.1.50:~$ dig foohost.example.com (resolv.conf points to above nameserver)
[ responds with NXDOMAIN even though I'm asking the same server ]
Nesse ponto, se eu tiver paciência, o problema acabará se resolvendo (talvez 15 minutos), mas como freqüentemente não tenho o luxo de paciência, sou forçado $ rndc freeze && rndc thaw
a usar o servidor de nomes para corrigir o problema à força.
Por outro lado
No lado perfeitamente invertido, se eu fizer o nsupdate no servidor a partir de um endereço que se enquadre na exibição "cdn-redir", o problema será revertido. Consultas subsequentes de clientes que correspondem a "cdn-redir" obtêm o registro correto imediatamente após o nsupdate sem mexer com "rndc freeze / thaw", mas as consultas em endereços que ficam fora da visualização de "cdn-redir" agora têm o atraso / rndc bobagem.
Minha pergunta final
Se fosse tão simples quanto 42, eu a pegaria de braços abertos ...
Gostaria de evitar o "rndc freeze && rndc thaw" por medo de perder uma atualização dinâmica do servidor DHCP. Alguém sabe como sincronizar os registros atualizados entre visualizações com mais eficiência / eficácia, ou pode esclarecer onde eu posso estar errado?
Edit: BIND 9.9.5 / Ubuntu 14.04, mas aconteceu nas versões anteriores do Ubuntu e BIND.
Obrigado a todos!
Conforme solicitado por Andrew B , eis a zona editada (e parcial):
$ORIGIN .
$TTL 3600
example.com IN SOA ns1.example.com. HOSTMASTER.example.com. (
2009025039 ; serial
900 ; refresh 15
600 ; retry 10
86400 ; expire 1 day
900 ; minimum 15 min
)
NS ns1.example.com.
$ORIGIN example.com.
$TTL 30
AEGIS A 10.2.1.60
TXT "31bdb9b3dec929e051f778dda5abd0dfc7"
$TTL 86400
ts-router A 10.1.1.1
A 10.1.2.1
A 10.1.3.1
A 10.1.4.1
A 10.1.5.1
A 10.1.6.1
A 10.1.7.1
A 10.1.8.1
A 10.2.1.1
A 10.2.2.1
A 10.2.3.1
ts-server A 10.2.1.20
ts-squid0 A 10.2.2.20
ts-squid1 A 10.2.2.21
$TTL 600
tssw4 A 10.2.3.4
tssw5 A 10.2.3.5
tssw6 A 10.2.3.6
tssw7 A 10.2.3.7
; wash rinse repeat for more hosts
$TTL 30
wintermute A 10.2.1.61
TXT "003f141e5bcd3fc86954ac559e8a55700"
zone
declaração porque meus pensamentos estavam indo em uma direção semelhante à de Håkan.
server
vez de local external-ip-address
consultar o MNAME da região (no SOA da região) e levá-lo para outro servidor de nomes em outro servidor para fazer sua atualização de DNS (principalmente se você tiver um mestre oculto / escravo público) topologia de rede principal furtiva).