Movendo-se para um melhor esquema de numeração serial do DNS

3

Eu recentemente 'herdei' um minúsculo servidor DNS bind9 (64MB de RAM executando bind9 + ssh somente) onde as zonas eram criadas usando um aplicativo GUI e então scp'd no servidor como root. Eu realmente não me importo com essa parte, mas acontece que o aplicativo GUI torna os números de série inconsistentes a cada edição, resultando em séries como 1245486432 ao invés do 'comum' (?) YYYYMMDDSS.

Existe uma maneira "segura" de aumentar / diminuir o número de série sem causar qualquer tipo de inconsistência entre os servidores DNS e os caches?

    
por LiraNuna 06.07.2009 / 10:44

3 respostas

6

O serial é usado pelos escravos para determinar se o arquivo de zona que eles têm é a mesma revisão que o mestre mantém. Quando a serial do mestre é incrementada, eles sabem que precisam de uma nova cópia para o AXFR. O único dano virá da diminuição porque os escravos pensarão que têm uma revisão posterior que o mestre está segurando.

Existem duas soluções para isso. O mais simples é decrementar seu mestre, remover cópias dos escravos e depois recarregá-los. No entanto, isso não funcionará se você não estiver no controle total dos escravos. Nesse caso, uma solução é fornecida no Manual de referência .

Add 2147483647 (2^31-1) to the number, reload the zone and make sure all slaves have updated to the new zone serial number, then reset the number to what you want it to be, and reload the zone again.

Apenas note que é melhor usar os dois últimos dígitos da série para armazenar uma revisão, em vez de segundos. ou seja, YYYYMMDDRR. Isso permite que você faça várias atualizações no mesmo dia.

    
por 06.07.2009 / 11:04
2

Eu usei alguma aritmética de número de série DNS "mágica" para voltar ao esquema YYYYMMDDSS mais regular, mas eu tive a rede de segurança de poder forçar manualmente os escravos a enviar e liberar caches se necessário.

RFC 1982 define um incremento máximo de 2147483647 (2 ^ 31 - 1) e o DNS & Bind Cookbook tem uma receita para redefinir o serial dessa maneira. Basicamente, adicione o incremento máximo à sua série atual, recarregue sua zona, espere que os escravos escolham a alteração, altere a serial para algo que você deseja e recarregue sua zona novamente.

    
por 06.07.2009 / 11:04
0

O incremento é seguro, como x > y é o teste, no entanto, para diminuir você frequentemente precisa controlar todos os escravos para forçá-los a carregar (o que eles pensam) uma zona antiga.

Depende dos escravos, mas para Bind a maneira mais fácil é parar, rm o arquivo escravo e iniciar. Você pode forçar uma recarga via RNDC se quiser aprender isso.

    
por 06.07.2009 / 10:54