Estou executando uma porta BIND 9.10.2 no FreeBSD 10 em uma configuração enjaulada e estou tendo um problema que rndc reload
não detecta nenhuma alteração no arquivo de zona (mestre primário), mesmo que o serial SOA esteja incrementado corretamente.
O comando em si parece ter sucesso:
#rndc reload
server reload successful
Nos logs vejo:
May 9 16:03:47 y named[81516]: all zones loaded
May 9 16:03:47 y named[81516]: running
E, no entanto, apenas uma reinicialização named
seleciona as atualizações da zona.
rndc zonestatus my_zone.com
imprime o serial antigo. Portanto, o BIND está falhando ao reler o arquivo de zona.
Como posso depurar isso?
Se esta for realmente uma zona atualizada dinamicamente (
allow-update
/update-policy
especificado), não é seguro editar o arquivo de zona diretamente!Em tal configuração, é o BIND que mantém o arquivo de zona; armazenando em buffer as alterações no arquivo de diário (
.jnl
) e reescrevendo o próprio arquivo de zona periodicamente.Espera-se que todas as alterações nos dados da zona ocorram por meio do protocolo de atualização dinâmica e sejam gerenciadas pelo BIND, não por meio de alterações diretas no arquivo de zona. Alterar o arquivo de zona de qualquer maneira causará um comportamento inconsistente, pois o conteúdo do arquivo de zona ficará fora de sincronia com o conteúdo do diário e o estado de
named
.Resumindo, normalmente você faz todas as alterações em tal zona usando atualizações dinâmicas (usando, por exemplo,
nsupdate
ou qualquer outro cliente), mas se, por algum motivo, for absolutamente necessário ter controle direto sobre o arquivo de zona, você pode suspender temporariamente as atualizações dinâmicas usandorndc freeze
e depois continuar usandorndc thaw
) . A suspensão de atualizações é uma operação bastante intrusiva (qualquer atualização falhará e o histórico de alterações pode ser apagado dependendo deixfr-from-differences
), então você provavelmente não deve fazer isso durante a operação normal.