20.5. Arquivos de zona

São necessários dois tipos de arquivos de zona. Um designa endereços IP a nomes de hosts e o outro faz o oposto: fornece um nome de host a um endereço IP.

[Tip]Usando o ponto em arquivos de zona

O . tem um significado importante nos arquivos de zona. Se os nomes de host forem designados sem um . final, a zona será anexada. Nomes de host completos especificados sem um nome de domínio completo devem terminar com um . para evitar que o domínio seja adicionado a eles novamente. Pontos ausentes ou colocados erradamente são provavelmente a causa mais freqüente de erros de configuração do servidor de nomes.

O primeiro caso a considerar é o arquivo de zona world.zone, responsável pelo domínio world.cosmos, exibido no Exemplo 20.6, “Arquivo /var/lib/named/world.zone”.

Exemplo 20.6. Arquivo /var/lib/named/world.zone

$TTL 2D
world.cosmos. IN SOA      gateway  root.world.cosmos. (
            2003072441  ; serial
            1D          ; refresh
            2H          ; retry
            1W          ; expiry
            2D )        ; minimum

            IN NS       gateway
            IN MX       10 sun

gateway     IN A        192.168.0.1
            IN A        192.168.1.1
sun         IN A        192.168.0.2
moon        IN A        192.168.0.3
earth       IN A        192.168.1.2
mars        IN A        192.168.1.3
www         IN CNAME    moon
Linha 1:

$TTL define o tempo padrão de operação a ser aplicado em todas as entradas deste arquivo. Neste exemplo, as entradas são válidas por um período de dois dias (2 D).

Linha 2:

Onde o registro de controle SOA (start of authority) é iniciado:

  • O nome do domínio a ser administrado é world.cosmos na primeira posição. Ele termina com um ., caso contrário a zona seria anexada outra vez. Como alternativa, é possível inserir uma @ aqui, caso em que a zona seria extraída da entrada correspondente em /etc/named.conf.

  • Depois, IN SOA será o nome do servidor de nomes master dessa zona. O nome é expandido de gateway para gateway.world.cosmos, pois ele não termina com um ..

  • Depois, é exibido o endereço de e-mail da pessoa responsável por esse servidor de nomes. Como o sinal de @ já tem um significado especial, o . é inserido aqui, no lugar dele. Para root@world.cosmos, a entrada deve ser lida como root.world.cosmos.. O . deve ser incluído no fim para evitar que a zona seja adicionada.

  • O ( inclui todas as linhas até ), no registro do SOA.

Linha 3:

O serial number é um número arbitrário que é aumentado sempre que o arquivo é mudado. Ele é necessário para informar os servidores de nomes secundários (servidores escravos) sobre as mudanças. Para isso, um número de 10 dígitos com a data e um número de execução, escrito como YYYYMMDDNN , é o formato mais usado.

Linha 4:

A refresh rate especifica o intervalo de tempo no qual os servidores de nomes secundários verificam o serial number da zona. Neste caso, um dia:

Linha 5:

A retry rate especifica o intervalo de tempo no qual um servidor de nomes secundário tenta entrar em contato com o servidor primário novamente, no caso de erro. Aqui, duas horas.

Linha 6:

O expiration time especifica o intervalo de tempo no qual um servidor de nomes secundário descarta os dados em cache, caso não tenha conseguido restabelecer contato com o servidor primário. Aqui, uma semana.

Linha 7:

A última entrada do registro SOA especifica o negative caching TTL — o tempo em que resultados de consultas não resolvidas do DNS de outros servidores podem ser armazenados em cache.

Linha 9:

O IN NS especifica o servidor de nomes responsável por este domínio. gateway é estendido para gateway.world.cosmos, pois não termina com um .. Pode haver várias linhas como esta: uma para o servidor de nomes primário e outra para o secundário. Se notify não for enviado para no em /etc/named.conf, todos os servidores de nomes listados aqui serão informados sobre as mudanças feitas nos dados da zona.

Linha 10:

O registro MX especifica o servidor de correio eletrônico que aceita, processa e encaminha e-mails para o domínio world.cosmos. Neste exemplo, o host é sun.world.cosmos. O número na frente do nome do host é o valor de preferência. Se houver várias entradas de MX, o servidor de correio eletrônico com menor valor será pego primeiro e se houver falha na entrega de mensagens, será feita uma nova tentativa com o próximo valor mais alto.

Linhas 12 a 17:

Estes são os registros reais em que um ou mais endereços IP são atribuídos a nomes de host. Os nomes são listados aqui sem um ., pois eles não incluem seus domínios, então world.cosmos é adicionado a todos. Dois endereços IP são designados ao host gateway, pois ele tem duas placas de rede. Em todos os locais em que o endereço de host for tradicional (IPv4), o registro será marcado com A. Se o endereço for um endereço IPv6, a entrada será marcada com A6. O token anterior para os endereços IPv6 era AAAA, agora obsoleto.

[Note]Sintaxe A6

O registro A6 tem uma ligeira diferença de sintaxe em relação ao AAAA. Devido à possibilidade de fragmentação, é necessário fornecer informações sobre as partes ausentes antes do endereço. Você deve fornecer essas informações mesmo se quiser usar um endereço completamente desfragmentado. Para o antigo registro AAAA com a sintaxe

 pluto IN            AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0
 pluto IN            AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0

É necessário adicionar as informações sobre as partes ausentes no formato A6. Como o exemplo acima está completo (não há nenhum bit ausente), o formato A6 deste registro é:

 
 pluto IN            AAAA 2345:00C1:CA11:0001:1234:5678:9ABC:DEF0 
 pluto IN            AAAA 2345:00D2:DA11:0001:1234:5678:9ABC:DEF0 
 

Não use endereços IPv4 com mapeamento IPv6. Se um host tiver um endereço IPv4, ele usará um registro A, não um A6.

Linha 18:

O álias www pode ser usado como endereço mond (CNAME significa nome canônico).

O pseudodomínio in-addr.arpa é usado para a pesquisa reversa de endereços IP em nomes de hosts. Ele é anexado à parte de rede do endereço, em notação reversa. Então, 192.168.1 é resolvido como 1.168.192.in-addr.arpa. Consulte o Exemplo 20.7, “Pesquisa reversa”.

Exemplo 20.7. Pesquisa reversa

    

$TTL 2D
1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. (
                        2003072441      ; serial
                        1D              ; refresh
                        2H              ; retry
                        1W              ; expiry
                        2D )            ; minimum

                        IN NS           gateway.world.cosmos.

1                       IN PTR          gateway.world.cosmos.
2                       IN PTR          earth.world.cosmos.
3                       IN PTR          mars.world.cosmos.
Linha 1:

STLL define o TTL padrão aplicado a todas as entradas aqui.

Linha 2:

O arquivo de configuração deve ativar a pesquisa reversa para a rede 192.168.1.0. Supondo que a zona seja chamada de 1.168.192.in-addr.arpa, ela não deve ser adicionada a nomes de hosts. Portanto, todos os nomes de host são digitados na forma completa, com seu domínio e um . no fim. As entradas restantes correspondem às descritas no exemplo de world.cosmos anterior.

Linhas 3 a 7:

Consulte o exemplo anterior para world.cosmos.

Linha 9:

Novamente, esta linha especifica o servidor de nomes responsável pela zona. No entanto, dessa vez o nome é digitado na forma completa, com o domínio e um . no fim.

Linhas 11 a 13:

Estas são as dicas dos registros do indicador nos endereços IP dos respectivos hosts. Somente a última parte do endereço IP é digitada no começo da linha, sem o . no fim. Anexar a zona a ele (sem .in-addr.arpa) resulta na ordem reversa de todo o endereço IP.

Normalmente, as transferências de zona entre versões diferentes do BIND devem ser possíveis sem problemas.