Existe uma maneira de criar em lotes as zonas de escravo DNS em um novo servidor DNS escravo?

4

Atualmente, tenho um servidor DNS que serve como um servidor DNS mestre para vários dos nossos domínios. Eu quero configurar um novo servidor DNS secundário. Existe alguma maneira que eu possa automaticamente ter BIND no novo servidor agir como um secundário para todos os domínios no servidor principal?

Caso seja importante, tenho o Webmin no servidor principal. Acredito que o Webmin tenha uma opção para criar uma zona como secundária em outro servidor ao criar uma nova zona mestre em um servidor, mas eu não conheço nenhuma maneira de criar zonas secundárias em lote para um número de existente master zones. Talvez eu esteja sentindo falta de algo.

Existe uma maneira de "criar em lote" zonas de escravo DNS em um novo servidor DNS escravo para todas as zonas DNS em um mestre existente?

    
por Josh 11.01.2011 / 20:39

6 respostas

10

Escrever um script para fazer isso não deve demorar muito, especialmente se você nomear os arquivos de zona após o domínio.

ls master.dir > domain.list

foreach domain ('cat domain.list')
echo 'zone "$domain" { type slave; file "slave/$domain"; masters { 1.2.3.4 }; };' >> named.conf.slaves
end

E adicione include named.conf.slaves; ao seu named.conf

    
por 11.01.2011 / 20:56
2

Desde que isso foi batido na primeira página de qualquer maneira:

Configure rndc e configure o opção

 allow-new-zones yes;

no seu named.conf . Então você pode adicionar novas zonas escravas a partir da linha de comando (sem editar manualmente o named.conf no slave) com

rndc addzone example.com '{ type slave; masters { master_ip; }; };'
rndc reconfig

que pode ser facilmente roteirizado e repetido para qualquer zona adicional que você queira adicionar.

    
por 01.07.2018 / 21:48
1

No Webmin, quando você configura um novo escravo, você terá a opção de copiar todas as zonas do mestre para o novo escravo. Os documentos do Virtualmin têm uma seção sobre servidores DNS escravos, e se você está apenas usando o Webmin, você simplesmente pula os bits finais para fazer o Virtualmin usar o servidor escravo. As etapas para o Webmin são as mesmas.

link

Especificamente, a opção que você deseja é "Criar todas as zonas mestras existentes no escravo?" que copia todos os dados.

O Webmin também pode transformar o escravo em um mestre no futuro, se necessário.

    
por 18.01.2011 / 00:04
0

O script provavelmente será necessário. Obtenha uma lista de todos os domínios para os quais você é o mestre e use essa lista para configurar as configurações dos escravos.

Você provavelmente também precisará configurar os mestres para permitir transferências do servidor escravo. Outra opção é o TSIG ( link )

    
por 11.01.2011 / 20:49
0

A maneira mais fácil seria copiar a configuração do mestre.

Um script perl curto deve ser capaz de substituir a palavra-chave master por escravo e adicionar o ponteiro ao mestre.

Como Christopher observou, você também precisará modificar a configuração do mestre para permitir transferências de zona do mestre.

Também notei um aviso de segurança para ligação que indica que você deve garantir que todas as suas zonas tenham uma cláusula de permissão de consulta.

    
por 11.01.2011 / 20:53
0
Tendo em conta o que foi dito anteriormente, adaptei o script de shell de Chris S. O script primeiro verifica se o arquivo de exportação existe e, se sim, o exclui para poder executar este script várias vezes e sem obter várias ocorrências da mesma zona. export.list não é um arquivo pré existente que faz parte do BIND, então não se preocupe. Ele obtém a lista de domínios e, em seguida, remove os últimos 3 caracteres do arquivo (db) (o formato do arquivo de zona é domain.tld.db) para obter a zona e gravar a diretiva correta para cada zona.

#!/bin/bash
ls *.db > domains.list
if [ -f export.list ]; then
rm export.list
fi
for domain in 'cat domains.list'; do
domain1="${domain::-3}"
echo "zone \"$domain1\" { type slave; file \"slaves/$domain\"; masters { 
XX.XX.XX.XX; }; };" >> export.list
done

então eu posso copiar e adicionar o conteúdo de export.list para /etc/named.conf na parte inferior do arquivo do meu servidor de nomes secundário.

    
por 01.07.2018 / 19:35