Bind 9 - Secondary Zone File atualiza somente após o reinício

1

uma descrição rápida da minha configuração. a zona primária está sendo executada em um dns do servidor windows. a zona secundária é executada na ligação. se eu excluir o arquivo de zona e reiniciar a ligação, a transferência funciona bem. significa que o arquivo de zona será criado com as entradas mais recentes. se agora adicionar ou remover uma entrada no servidor do windows, o log de ligação diz:

named[18697]: zone xxx.xxx/IN: transferred serial 144
named[18697]: transfer of 'xxx.xxx/IN' from 192.168.111.4#53: Transfer completed: 1 messages, 5 records, 212 bytes, 0.109 secs (1944 bytes/sec)
named[18697]: zone xxx.xxx/IN: sending notifies (serial 144)

mas o arquivo de zona não é atualizado! se eu remover o arquivo novamente e reiniciar o bind, irei obter os registros atualizados. Alguém tem uma ideia, qual é o meu problema aqui? obrigada!

    
por maigrl 01.06.2015 / 19:35

1 resposta

1

Isso é algo especulativo até que seja confirmado se a questão é especificamente sobre o arquivo de zona e não sobre o conteúdo da zona.


O BIND não grava imediatamente dados de transferências de zona (para zonas escravas) ou atualizações (para zonas atualizadas dinamicamente) no arquivo de zona propriamente dito, em vez disso, armazena as alterações no arquivo de diário ( .jnl ) e limpa periodicamente todos muda para o arquivo de zona principal.

Isso não afeta de forma alguma os dados que estão sendo veiculados; os novos dados são servidos independentemente de terem sido mesclados no arquivo de zona principal ainda ou não.

Além disso, por padrão, as versões atuais do BIND não usam nem mesmo o arquivo mestre baseado em texto formato para zonas escravas em favor de uma formatação binária mais eficiente (sem problemas reais, já que você não está trabalhando diretamente com os arquivos para as zonas escravas).


A lição a ser aprendida de tudo isso é que você não deveria realmente estar olhando para o conteúdo do arquivo nos casos em que o arquivo é gerenciado pelo BIND, mas em vez disso, olha para os dados que ele serve.

Se você, por qualquer motivo, deve olhar o conteúdo do arquivo em vez de consultar o processo named em execução, você vai querer ler o arquivo de uma maneira que também leve o diário em consideração.

Por exemplo, named-compilezone -j -o - example.com db.example.com

(Como alternativa, named-compilezone -f raw -j -o - example.com db.example.com se o arquivo estiver no formato raw (binário).)

    
por 01.06.2015 / 22:58

Tags