D. J. Bernstein
Internet publication
djbdns
Blurbs

Facilidade de uso: BIND versus djbdns

Problema: Configurar um cache externo em 1.2.3.4 para clientes da rede 1.2.3.*

Solução BIND:
  1. Crie um arquivo de zona localhost, com um registro SOA, um NS, e um registro A.
  2. Crie um arquivo de zona 0.0.127.in-addr.arpa com um registro SOA, um NS e um rgistro PTR.
  3. Crie um arquivo de zona root.hints com os endereços IP dos servidores raiz.
  4. Crie um arquivo named.conf: zone "localhost" in { type master; file "localhost"; }; zone "0.0.127.in-addr.arpa" in { type master; file "0.0.127.in-addr.arpa"; }; zone "." in { type hint; file "root.hints"; }; options { interface-interval 0; listen-on { 1.2.3.4; }; allow-query { 1.2.3/24; }; };
  5. Inicie named.
  6. Certifique-se que seus scripts de boot iniciem o named.
Solução djbdns:
  1. Crie as contas Gdnscache e Gdnslog.
  2. dnscache-conf Gdnscache Gdnslog /etc/dnscache 1.2.3.4
  3. ln -s /etc/dnscache /service
  4. cd /service/dnscache
  5. touch root/ip/1.2.3

Problema: Também permitir requisições dos clientes na rede 1.5.*

Solução BIND:
  1. Edite named.conf.
  2. Adicione 1.5/16 à seção allow-query.
  3. Envie um sinal HUP ao named.
  4. Procure por erros nos seus logs de sistema. O livro "DNS e BIND" diz, corretamente, que você "pode nunca notar" erros de sintaxe nos arquivos de configuração.
Solução djbdns:
  1. cd /service/dnscache
  2. touch root/ip/1.5

Problema: Rodar o cache como não root e em uma jaula chroot.

Soução BIND:
  1. Crie uma conta Gbindin.
  2. mkdir /etc/bindin
  3. Copie vários arquivos dependentes ao sistema, os quais não são bem explicados no manual BIND, para dentro do /etc/bindin.
  4. Kill named.
  5. Inicie named -u Gbindin -t /etc/bindin.
  6. Altere a linha named em seus scripts de boot de acordo.

Solução djbdns: Relaxe. Ele já roda como não root e em uma jaula chroot.

Problema: Fazer com que o cache seja reiniciado caso alguém o mate acidentalmente.

Solução BIND: Escreva um script que procura pelo processo named, reinicia-o caso não esteja rodando, pausa por um segundo e repete a busca. Inicie este script.

Solução djbdns: Relaxe. O cache já é monitorado.

Problema: Dizer ao cache para consultar um servidor interno no endereço IP 10.1.2.5 para achar informações sobre moon.x.mil

Solução BIND:
  1. Edite named.conf.
  2. Adicione uma zona de encaminhamento: zone "moon.x.mil" in { type forward; forward only; forwarders { 10.1.2.5; }; };
  3. Envie um sinal HUP ao named.
  4. Procure por erros nos seus logs de sistema.
Solução djbdns:
  1. cd /service/dnscache
  2. echo 10.1.2.5 > root/servers/moon.x.mil
  3. svc -t .

Problema: Dizer ao cache para seguir uma nova delegação do servidor interno ao 10.1.2.6 para d.moon.x.mil.

Solução BIND:
  1. Edite named.conf.
  2. Adicione outra zona de encaminhamento: zone "d.moon.x.mil" in { type forward; forward only; forwarders { 10.1.2.6; }; };
  3. Envie um sinal HUP ao named.
  4. Procure por erros nos seus logs de sistema.
Solução djbdns: Relaxe. O cache segue delegações.

Problema: Configurar um servidor no 1.2.3.5 para que publique informações sobre x.mil e 1.2.3.*

BIND solution:
  1. Crie um arquivo de zona x.mil, com um registro SOA e um registro NS.
  2. Crie um arquivo de zona 3.2.1.in-addr.arpa, com um registro SOA e um registro NS.
  3. Crie um arquivo named.conf: zone "x.mil" in { type master; file "x.mil"; }; zone "3.2.1.in-addr.arpa" in { type master; file "3.2.1.in-addr.arpa"; }; options { interface-interval 0; listen-on { 1.2.3.5; }; recursion no; fetch-glue no; allow-transfer { none; }; };
  4. Inicie named.
  5. Certifique-se que seus arquivos de boot iniciem named.
Solução djbdns:
  1. Crie as contas Gtinydns e Gdnslog.
  2. tinydns-conf Gtinydns Gdnslog /etc/tinydns 1.2.3.5
  3. ln -s /etc/tinydns /service
  4. cd /service/tinydns/root
  5. ./add-ns x.mil 1.2.3.5
  6. ./add-ns 3.2.1.in-addr.arpa 1.2.3.5
  7. make
Problema: Rodar o servidor como não root e em uma jaula chroot. Solução BIND:
  1. Crie uma conta Gbindout.
  2. mkdir /etc/bindout
  3. Copie vários arquivos dependentes ao sistema, os quais não são bem explicados no manual BIND, para dentro do/etc/bindout.
  4. Kill named.
  5. Inicie named -u Gbindout -t /etc/bindout.
  6. Altere a linha named em seus scripts de boot de acordo.
Solução djbdns: Relaxe. O servidor, como o cache, já roda como não root e numa jaula chroot.

Problema: Adicione um host lion.x.mil com o endereço 1.2.3.4

Solução BIND:
  1. Edite a zona x.mil.
  2. Adiocione lion A 1.2.3.4.
  3. Altere o número seial no registro SOA.
  4. Edite a zona 3.2.1.in-addr.arpa zone.
  5. Adicione 4 PTR lion.x.mil.
  6. Altere o número serial no registro SOA.
  7. Envie um sinal HUP ao named.
  8. Procure por erros nos logs de seu sistema. Como dito acima: Look for errors in your system's logs. As noted above:O livro "DNS e BIND" diz, corretamente, que você "pode nunca notar" erros de sintaxe nos arquivos de configuração.
Opa! Será que esqueci do ponto no lion.x.mil? Como diz o livro "DNS e BIND": "É muito fácil de esquecermos do ponto final após o domínio."
Solução djbdns:
  1. cd /service/tinydns/root
  2. ./add-host lion.x.mil 1.2.3.4
  3. make

Você não precisa verificar os logs de seu sistema: se houverem erros de sintaxe, ou de escrita no disco, etc., eles aparecerão em sua tela ao rodar o make. De qualquer forma, o programa add-host nuca introduz erros de sintaxe.

Problema: Evitar de usar acidentalmente um nome de host ou endereço IP já usado anteriormente.

Solução BIND: Manualmente verifique o arquivo de zonas pelo novo nome de host e o novo endereço IP. Vocâ não terá muito trabalho se você coloca seus dados em ordem alfabética.

Solução djbdns: Relaxe. O programa add-host lida com isso automaticamentehandles this automatically. (If you want to reuse a name or address, use add-alias.)

Problema: Evitar de acidentalmente destruir uma zona se houve problema ao salvar os novos dados: ex.: falta de espaço em disco ou repentina falta de energia.

Solução BIND:
  1. Copie o arquivo de zona.
  2. Edite a cópia.
  3. Syncronize a cópia no disco.
  4. Renomeie a cópia.
Solução djbdns: Relaxe. add-host lida com isto automaticamente.

Problema: Certificar-se de que não hajam erros nos novos dados adicionados a mão.

Solução BIND: Procure por erros nos seus logs de sistemas. Algumas mensagens significam que named não está mais fornecendo informações sobre aquela zona e que usuários começarão a ver problemas em questão de segundos. Neste caso, entre em pânico.

Solução djbdns: Se houver um erro de sintaxe, make irá exibir uma mensagem de erro imediatamente, e o tinydns continuirá fornecendo os dados antigos.

Problema: Enviar e-mail destinado a x.mil a um servidor de e-mail no 1.2.3.4

Solução BIND:
  1. Edite a zona x.mil.
  2. Adicione @ MX 0 lion.
  3. Altere o número serial no registro SOA.
  4. Envie um sinal HUP ao named.
  5. Procure por erros nos seus logs de sistema.
Solução djbdns:
  1. cd /service/tinydns/root
  2. ./add-mx x.mil 1.2.3.4
  3. make

Problema: Delegar elysium.x.mil a um servidor DNS no IP 1.2.3.144

Solução BIND:
  1. Edite a zona x.mil .
  2. Adicione elysium NS a.ns.elysium.
  3. Adicione a.ns.elysium A 1.2.3.144.
  4. Altere o número serial no registro SOA.
  5. Envie um sinal HUP ao named.
  6. Procure por erros nos seus logs de sistema.
Solução djbdns:
  1. cd /service/tinydns/root
  2. ./add-childns elysium.x.mil 1.2.3.144
  3. make

Problema: Replicar o serviço DNS do 1.2.3.5 para o 1.2.3.6.

Solução BIND: No 1.2.3.5:
  1. Edite named.conf.
  2. Insira 1.2.3.6; na seção allow-transfer.
  3. Edite o arquivo de zona x.mil.
  4. Adicione um registro NS apontando para 1.2.3.6.
  5. Edite o arquivo de zona 3.2.1.in-addr.arpa.
  6. Adicione um registro apontando para 1.2.3.6.
  7. Envie um sinal HUP ao named.
  8. Procure por erros em seus logs de sistema.
No 1.2.3.6:
  1. Crie um arquivo named.conf: zone "x.mil" in { type slave; file "x.mil"; masters { 1.2.3.5; }; }; zone "3.2.1.in-addr.arpa" in { type slave; file "3.2.1.in-addr.arpa"; masters { 1.2.3.5; }; }; options { interface-interval 0; listen-on { 1.2.3.5; }; recursion no; fetch-glue no; allow-transfer { none; }; };
  2. Inicie o named.
  3. Certifique-se de que seus scripts de boot iniciem o named.
Soução djbdns: No 1.2.3.6:
  1. Crie as contas Gtinydns e Gdnslog.
  2. tinydns-conf Gtinydns Gdnslog /etc/tinydns 1.2.3.6
  3. ln -s /etc/tinydns /service
No 1.2.3.5:
  1. cd /service/tinydns/root
  2. No topo do Makefile, adicione um alvo remote: data.cdb, com o comando rsync -az -e ssh data.cdb 1.2.3.6:/ service/ tinydns/ root/ data.cdb. (Sem espaços após as barras.)
  3. ./add-ns x.mil 1.2.3.6
  4. ./add-ns 3.2.1.in-addr.arpa 1.2.3.6
  5. make

Problema: Replicar uma zona recém criada.

Solução BIND:
  1. Edite o named.conf.
  2. Adicione uma nova linha type slave .
  3. Envie um sinal HUP ao named.
  4. Procure por erros nos seus logs de sistema.

Solução djbdns: Relaxe. Novas zonas são replicadas automaticamente.