As zonas do servidor BIND não “notificam” até que a serial seja alterada

1

Estou tendo o que sinto que acabará sendo um problema simples, mas não estou vendo o problema óbvio.

Aqui está um exemplo de fluxo antes de tudo para entender melhor como as coisas ocorrem na ordem - observe que essa é uma infraestrutura que já está em vigor e a ordem das operações precisa permanecer intacta:

  1. Register domain IE GoDaddy
  2. Domínio de pontos no nosso servidor de nomes
  3. Criar registro de servidor de nomes e recarregar Vincular

Agora .. Entre os passos 1 e 2, começamos a ver isso (obviamente, porque o domínio ainda não está em nosso sistema:

Jun 12 15:32:40 DNSSERVER named[25262]: client 230..xxx.xxx.xx#61333 (example.com): query (cache) 'example.com/SOA/IN' denied

Em seguida, eu crio o arquivo de zona /var/lib/bind/example.com.hosts :

$ttl 38400
example.com.                       IN          SOA      ns1.ourdnsserver.com. some.email.com. (
                            1494611262
                            10800
                            3600
                            604800
                            38400 )
example.com.                       IN       NS      ns1.ourdnsserver.com.
example.com.                       IN       A       40.xx.xx.xx
www.example.com.                   IN       A       40.xx.xx.xx
mail.example.com.                  IN       A       173.xx.xx.xx
webmail.example.com.               IN       A       173.xx.xx.xx
example.com.                       IN       MX      10 mx1.server.com.
example.com.                       IN       MX      20 mx2.server.com.

Depois disso, insiro a região na configuração /etc/bind/named.conf.local :

zone "example.com" {
     type master;
     file "/var/lib/bind/example.com.hosts";
     };

Em seguida, emito uma reinicialização sudo service bind9 restart

Depois disso, ainda recebo o

Jun 12 15:32:40 DNSSERVER named[25262]: client 230..xxx.xxx.xx#61333 (example.com): query (cache) 'example.com/SOA/IN' denied

O que tenho que fazer para resolver isso é edit meu arquivo /var/lib/bind/example.com.hosts - Atualize o serial com um novo timestap do unix - salve novamente e reinicie o Bind. E viola, os notificadores são enviados que a zona foi atualizada.

EDITAR

Então eu obtenho o seguinte no log

8377:Jun 12 14:12:57 OURSND named[25262]: zone example.com/IN: sending notifies (serial 1494611231)

END EDIT

Aqui está a pergunta: por que os notificadores não são enviados quando eu crio a zona e reinicio o Bind? Por que preciso voltar, editar, salvar novamente e reiniciar o Bind para que a zona seja vista como "atualizada"? Eu quero que isso aconteça da primeira vez, todas as vezes. O que eu não estou vendo?

    
por Zak 12.06.2017 / 23:30

1 resposta

2

Pense na serial como um número de versão. Você (re) começa a vincular, ele verifica o número da versão em seu cache de dados versus o número da versão em config (a serial). Se a versão é a mesma, por que se preocupar em reprocessar tudo, e por que desperdiçar largura de banda de rede dizendo aos servidores secundários que você tem zona (s) para transferir ...

Atualize sempre sua série. A única regra é que deve subir. Usar um carimbo de data / hora do UNIX é bom ou um formato como YYYYMMDDNN, em que NN é um número de revisão para esse dia (você precisa alterá-lo mais de 99 vezes por dia?).

O problema, como você descobriu, é lembrar de atualizar a serial ao editar o arquivo. Use alguns arquivos de modelo, arquivos de dados e scripts de shell para criar um processo de "compilação" onde você faria as edições nos dados e, em seguida, informaria para regenerar o (s) arquivo (s) de zona, incluindo uma nova série , ou até mesmo ir a um front-end baseado na web com um painel de controle de "provedor de serviços" como o ISPConfig onde os dados estarão todos em um banco de dados sql e o software ispconfig criará o (s) arquivo (s) de zona automaticamente. p>     

por 13.06.2017 / 02:10