Agora vamos definir nosso próprio campo. Vamos criar o domínio linux.bogus e definir suas máquinas. Usaremos o nome de domínio bogus para estarmos certos de não estarmos perturbando ninguém.
Mais uma coisa antes de começarmos: nem todos os caracteres são permitidos nos nomes das máquinas. Estamos limitados ao caracteres do alfabeto: a-z e ao números: 0-9, além do caracter '-' (hífen). Devemos nos restringir àqueles caracteres. Os caracteres maiúsculos e minúsculos são idênticos para o DNS, assim pat.uio.no é igual a Pat.UiO.No.
Começaremos esta parte com uma linha em named.conf:
zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
Por favor note a falta de `.' no final dos nomes dos campos neste arquivo. Isto nos diz que podemos definir uma zona 0.0.127.in-addr.arpa, na qual somos os servidores principais e que as informações estão guardadas em um arquivo chamado pz/127.0.0. Nós já configuramos este arquivo anteriormente com o seguinte conteúdo:
@ IN SOA ns.linux.bogus.hostmaster.linux.bogus. ( 1 ; Serial 8H ; Atualização 2H ; Tentativas 1W ; Expiração 1D) ; TTL mínimo NS ns.linux.bogus. 1 PTR localhost
Por favor note o `.' no final de todos os nomes completos de campo neste arquivo, em contraste ao arquivo acima named.conf. Algumas pessoas gostam de começar cada arquivo de zona com uma diretiva $ORIGIN, mas isto é supérfluo. A origem (onde pertence o DNS na hierarquia) de um arquivo de zona é especificado na seção de zona do arquivo named.conf, a qual neste caso é 0.0.127.in-addr.arpa.
Este `arquivo de zona ' contém 3 `registros de recursos' (RRs): SOA, NS e um PTR. SOA é a contração para Início de Autoridade. O `@' é uma observação especial que significa origem e desde que a coluna do campo para este arquivo diz 0.0.127.in-addr.arpa, a primeira linha realmente quer dizer
NS é o nome do servidor RR. Não há '@' no início desta linha, está implícito desde que a última linha começou com o caracter '@'. Economiza-se assim alguma digitação e a possibilidade de cometer algum erro. Assim na linha NS se lê
Indicando ao DNS que a máquina é o servidor de nomes do domínio 0.0.127.in-addr.arpa é chamada ns.linux.bogus. 'ns' é um nome comum para servidor de nomes, mas como em servidores web são costumeiramente chamados www.domínio, este nome pode ser qualquer coisa.
E finalmente o registro PTR diz que a máquina no endereço 1 na subrede
0.0.127.in-addr.arpa, ou seja, 127.0.0,1 é denominado localhost.
O registro SOA é o preâmbulo para todos os arquivos de zona e deve haver exatamente um em cada arquivo de zona, devendo necessariamente ser o primeiro registro. Ele descreve a zona, sua origem (uma máquina servidor de nomes ns.linux.bogus), quem é a responsável por seu conteúdo (hostmaster@linux.bogus), qual a versão do arquivo de zona (serial: 1) e outras coisas que têm a ver com guarda de dados em cache e servidores secundários de DNS. Para os demais campos, Atualização, Tentativas, Expiração e TTL, pode-se usar os valores aqui indicados e se estará seguro.
Agora reinicializaremos o servidor de nomes (através do comando ndc restart), e usaremos nslookup para examinar o que foi feito:
observamos então que é possível chegar a localhost a partir do endereço 127.0.0.1. Agora a nossa tarefa principal, no campo linux.bogus, vamos inserir uma nova seção chamada 'zone' no named.conf:
zone "linux.bogus" { notify no; type master; file "pz/linux.bogus"; };
Note-se a ausência de `.' no nome do domínio no arquivo named.conf.
No arquivo de zona do domínio linux.bogus colocaremos alguns dados totalmente inventados:
; ; Arquivo zona para linux.bogus ; ; O arquivo completo de zone ; @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial, data de hoje + serial de hoje 8H ; Atualização, segundos 2H ; Tentativa, segundos 1W ; Expiração, segundos 1D ) ; TTL, segundos ; NS ns ; Endereço Internet do nome do servidor MX 10 mail.linux.bogus ; Servidor de Correio Primário MX 20 mail.friend.bogus. ; Servidor de Correio Secundário ; localhost A 127.0.0.1 ns A 192.168.196.2 mail A 192.168.196.4
Dois aspectos devem ser observados sobre o registro SOA. ns.linux.bogus deve ser uma máquina real com um registro A. Não é permitido ter um registro CNAME para a máquina mencionada no registro SOA. O nome não precisa ser 'ns', pode ser qualquer nome de máquina válido. Em seguida, a hostmaster.linux.bogus deve ser lido como hostmaster@linux.bogus, o qual deve ser um nome alternativo de correio, ou caixa postal, acessado pela(s) pessoa(s) que mantém o DNS e leiam a correspondência freqüentemente. Qualquer correspondência relativa ao domínio será enviada para o endereço relacionado aqui. O nome não precisa ser 'hostmaster', pode ser qualquer endereço e-mail válido, mas espera-se que o endereço e-mail 'hostmaster' funcione bem também.
Há um novo tipo RR neste arquivo, o MX, ou registro de recurso de servidor de correio. Este arquivo diz aos sistemas de correspondência para onde enviar a correspondência endereçada para alguém@linux.bogus, ou seja no nosso caso mail.linux.bogus ou mail.friend.bogus. O número antes de cada nome de máquina define a prioridade. O RR com o número mais baixo tem prioridade. Caso ele não esteja ativo ou apresentar algum erro, a mensagem pode ser enviada a um outro servidor de mensagens com um número mais alto, um operador de correspondência secundário, ou seja, no nosso caso, mail.friend.bogus que tem prioridade 20.
Ao se reiniciar o servidor de nomes executando-se ndc restart obteremos os seguintes resultados com nslookup:
Com um exame mais apurado pode-se descobrir um pequeno problema. A linha
deveria ser
Deliberadamente cometemos o erro para que o leitor aprenda com ele:-) Examinando o arquivo de zona, percebemos que na linha
está faltando um ponto. Ou seja há 'linux.bogus' demais. Caso um nome de máquina não seja seguido por um ponto num arquivo de zona, a origem será acrescentada ao final causando o duplo linux.bogus.linux.bogus. Portanto
MX 10 mail.linux.bogus. ; Servidor primário de correio
ou
MX 10 mail ; Servidor primário de correio
estão corretos. Particularmente, sugerimos a última forma, por ser mais econômica e menos sujeita a erros. Existem alguns bem conhecidos usuários de bind que discordam e outros que concordam com isto. Num arquivo de zona, o domínio pode tanto ser totalmente identificado e terminado com um `.' ou não deve ser incluído de forma alguma, utilizando então o padrão da origem.
Devemos salientar que em um arquivo named.conf não deve haver `.' depois dos nomes dos domínios. Você não tem idéia de quantas vezes um `.' gerou uma enormidade de problemas e confundiu um punhado de administradores.
Agora que já expressamos nosso ponto de vista, estamos com o novo arquivo de zona, com informações extras também:
; ; Arquivo de zona para linux.bogus ; ; O arquivo de zona completo ; @ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 199802151 ; serial, data de hoje + serial de hoje # 8H ; Atualizar, segundos 2H ; Tentativas, segundos 1W ; Expiração, segundos 1D ) ; TTL, segundos ; TXT "Linux.Bogus, os especialistas DNS " NS ns ; Endereço Internet do servidor de nomes NS ns.friend.bogus. MX 10 mail ; Servidor de correio primário MX 20 mail.friend.bogus. ; Servidor de correio secundário localhost A 127.0.0.1 gw A 192.168.196.1 HINFO "Cisco" "IOS" TXT "O roteador" ns A 192.168.196.2 MX 10 mail MX 20 mail.friend.bogus. HINFO "Pentium" "Linux 2.0" www CNAME ns donald A 192.168.196.3 MX 10 mail MX 20 mail.friend.bogus. HINFO "i486" "Linux 2.0" TXT "DEK" correio A 192.168.196.4 MX 10 mail MX 20 mail.friend.bogus. HINFO "386sx" "Linux 2.2" ftp A 192.168.196.5 MX 10 mail MX 20 mail.friend.bogus. HINFO "P6" "Linux 2.0.36"
Há diversos RRs novos: HINFO (INFOrmação da Máquina) tem duas partes, sendo aconselhável indicar os dois. A primeira parte é o hardware ou CPU da máquina, e a segunda parte é o software ou OS da máquina. O servidor de nomes 'ns' tem uma CPU Pentium e executa o Linux 2.0. CNAME (NOME Canônico) é uma maneira de dar a uma mesma máquina vários nomes. Assim www é um nome alternativo para o ns.
O uso do registro CNAME é um pouco controvertido. Mas é seguro seguir a regra onde um registro MX, CNAME ou SOA nunca deve referir-se a um registro CNAME , e devem referir-se somente a um registro A, sendo portanto incorreto ter-se:
itamaracabar CNAME www ; NÃO!
o correto seria:
itamaracabar CNAME ns ; SIM!
É também seguro supor que um CNAME não é um nome de máquina válido para um endereço e-mail, por exemplo webmaster@www.linux.bogus é um endereço ilegal, conforme a configuração acima. Não se deve esperar que muito administradores de servidores de mensagens usem esta configuração, mesmo se ela funcionar localmente. A maneira para evitar isto é usar registros de tipo A ( e talvez alguns outros também, como um registro MX):
www A 192.168.196.2
Um grande número de magos do DNS, sugerem que o CNAME não seja utilizado. Por isso, devemos considerar esta sugestão muito seriamente.
Mas como se pode perceber, este COMO FAZER e muitos sites não seguem esta regra.
Pode carregar o novo banco de dados executando-se ndc reload, o que fará com que o named leia seus arquivos novamente.
Isto significa que todos os registros devem ser apresentados. O resultado será:
Parece ótimo. Como se pode ver parece muito com o arquivo de zona. Vamos verificar o que ele diz para www:
Em outras palavras, o nome real de www.linux.bogus é ns.linux.bogus, e ele fornece algumas informações adicionais que ele possua sobre ns, o suficiente para um programa conectar-se a ele.
Agora estamos no meio do caminho.