A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

BIND (DNS) na jaula

Qui

16

Mar

2006


01:00

(13 votos, média 4.23 de 5) 


Bloco numaboa.com.br - zona remetente

Um dos domínios hospedados no meu servidor web/DNS é o numaboa.com.br. Este domínio está pegando uma carona no endereço IP do meu servidor de nomes e precisa ser declarado numa zona remetente com zone "numaboa.com.br" IN. O IN indica que se trata de uma zona de Internet e pode ser omitido.

O tipo da zona é type master; porque tenho autoridade sobre esta zona que contém o meu domínio. O arquivo com os registros é o file "numaboa.com.br.domain" e com allow-query { any; }; permito que você e todos os outros internautas que queiram visitar meu site obtenham a tradução do nome para o endereço IP.

Bloco host - zona inversa

As consultas à zona numaboa.com.br (e outros domínios virtuais que estejam hospedados no mesmo host) também precisam fornecer traduções inversas. No início do texto dei como exemplo um endereço IP fictício 10.20.30.40, o qual precisa ser invertido gerando a declaração zone "30.20.10.in-addr-arpa". O tipo é type master;, o arquivo de registros é file "30.20.10.reverso"; e qualquer tipo de solicitação é aceita com allow-query { any; };

Bloco numaboa.org - zona remetente

Existe mais um domínio hospedado na máquina 10.20.30.40 - é o numaboa.org. A zona remetente não é muito diferente da zona numaboa.com.br, apenas o nome do arquivo de registros muda: é file "numaboa.org.domain";

Como este domínio reside no IP cuja zona inversa já foi declarada, não há a necessidade de criar outro bloco de zona inversa.

4. Registros de Recursos

Para cada uma das zonas declaradas no arquivo de configuração named.conf será preciso criar um arquivo de registros correspondente que tenha o MESMO nome indicado na declaração file. Antes de exemplificar cada um deles, alguns conceitos importantes:

  • $TTL - Time To Live (Tempo de Vida): a partir do BIND 9 esta diretiva é obrigatória e indica o tempo que os registros permanecem no cache sem atualização. É claro que $TTL indica uma medida de tempo e esta, assim como outras que veremos a seguir, pode ser em segundos, minutos, horas, dias e semanas. $TTL 86400 é o mesmo que $TTL 24H porque 86400 segundos correspondem a 24 horas.
  • SOA - Start Of Authority (Início da Autoridade): o Registro de Recursos (RR - Resource Record) SOA é o preâmbulo de TODAS as zonas e possui cinco colunas.
    • O nome da zona.
    • IN indica que é da Internet e pode ser suprimida.
    • SOA, o início da autoridade.
    • Um valor MNAME, que é o nome do servidor DNS primário (master). Use de preferência o nome completo seguido por um ponto (.)
    • Um valor RNAME, que é o e-mail do responsável no formato nome.domínio.com.br. (não esquecer do ponto no final!)
  • Dentro do bloco SOA ficam as seguintes declarações (obedeça a ordem!)
    • Número de série: geralmente no formato AAAAMMDDxx, onde AAAA é o ano, MM o mês, DD o dia e xx um valor sequencial. Toda vez que algum registro for alterado, não esqueça de atualizar o número de série incrementando o valor sequencial para avisar outros servidores de nomes que houve mudanças.
    • Valor refresh: se não for usado o NOTIFY, indica a frequência de releitura dos RR servidor de nomes escravo (slave) ou secundário.
    • Valor retry: caso haja alguma falha de comunicação/leitura, indica o tempo de espera antes de uma nova tentativa efetuada pelo servidor escravo ou secundário.
    • Valor expire: indica quando a validade dos dados SOA expira, garantindo os RR durante o tempo indicado, mesmo se ocorrer algum erro. Só faz sentido para o servidor de nomes escravo ou secundário.
    • Valor TTL mínimo: serve como valor default para todos os RRs sem TTL indicado. Atualmente o $TTL inicial é obrigatório e, a partir da versão 9 do Bind, funciona como tempo negativo de cache - o tempo que um NAME ERROR = NXDOMAIN fica no cache. O valor máximo deste parâmetro permitido pelo Bind 9 é de 3 horas (10800 segundos).
  • O arquivo da zona ainda pode ter diversos outros RRs:
    • A (address - endereço): endereço IP.
    • NS (name server - servidor de nomes)
    • PTR (pointer - ponteiro): usado principalmente em arquivos de zona inversa.
    • MX (mail extended): serviço de e-mail e prioridade.
    • CNAME (canonical name): apelidos de endereços (e SÓ de endereços).
    • TXT (text): opcional, texto explicativo ou diretivas especiais (como, por exemplo, para identificar servidores de e-mail que não permitem spam).

Use seu editor de texto preferido para criar os arquivos a seguir no diretório /jaula/named/conf/:

O arquivo de registros do localhost

;
; db.localhost
;
$TTL 86400

localhost.      IN      SOA ns1.numaboa.com.br. webmaster.numaboa.com.br. (
                        2006030601      ; serial
                        24H             ; refresh
                        2H              ; retry
                        1000H           ; expire
                        2D )            ; minimum

localhost.      IN      NS      ns1.numaboa.com.br.
localhost.      IN      A       127.0.0.1

Este arquivo de registros indica que o tempo de vida (TTL) da zona localhost é de 86400 segundos (24 horas). Seu SOA informa que o nome da máquina servidora DNS é ns1.numaboa.com.br e que o responsável pelo registro é webmaster no domínio numaboa.com.br. O número de série é o primeiro criado em 06 de março de 2006; a releitura dos registros (refresh) deve ocorrer a cada 24 horas; caso haja falha, a releitura deve ser repetida após 2 horas; a validade dos dados expira após 1000 horas e o TTL mínimo é de 2 dias.

Depois de definido o SOA, seguem apenas mais dois registros de recursos (RR). O NS diz que os dados da zona localhost podem ser encontrados no servidor de nomes ns1.numaboa.com.br e o A diz que o endereço de localhost é 127.0.0.1.

Existe uma notação especial (@) que significa origem, ou seja, o nome da zona. Como no arquivo named.conf a zona está identificada como "localhost", @ = localhost. Neste caso, todas as referências a localhost podem ser substituídas por @. Mas existe mais uma particularidade: se não indicarmos o nome da zona na coluna da esquerda, vale o nome usado na linha anterior. Por isto, o arquivo abaixo funciona exatamente como o anterior:

;
; db.localhost
;
$TTL 86400

@       IN      SOA ns1.numaboa.com.br. webmaster.numaboa.com.br. (
                2006030601      ; serial
                24H             ; refresh
                2H              ; retry
                1000H           ; expire
                2D )            ; minimum

        IN      NS      ns1.numaboa.com.br.
        IN      A       127.0.0.1

Existe um utilitário do BIND que serve para checar a sintaxe de arquivos de registros de recursos. Deve ser usado após a criação de cada um dos arquivos. A sintaxe é named-checkzone <nome da zona> <arquivo de configuração>. Para o arquivo acima obtemos:

# named-checkzone localhost /chroot/named/conf/db.localhost
zone localhost/IN: loaded serial 2006030601
OK

Informações adicionais