O DNS, ao consultar sobre um domínio, inicia a busca em ordem invertida, desta forma ao tentar localizar o computador "www.langhi.com.br" ele iniciará a busca pela raiz (denomina-se ".") e perguntará quem é o DNS responsável por "br". Ao localizar este, perguntará quem é responsável por "com.br". Ao localizar este, perguntará quem é responsável por "langhi.com.br" (nosso DNS). Ao localizar o nosso DNS, ele será questionado sobre quem é nossa máquina "www", presente em nosso domínio.
Note que configuramos o "named.conf" para saber que responderá pelo domínio "langhi.com.br", porém não ensinamos para ele quais são as máquinas presentes em nosso domínio. Faremos esta associação nos arquivos de zona. A localização destes arquivos está escrita no "named.conf". Vamos revisar esta passagem:
zone "langhi.com.br" IN {
type master;
file "langhi.com.br.zone";
allow-update { pdc; };
};
Note que dissemos ao Bind para procurar pelo arquivo "langhi.com.br.zone". Poderíamos ter fornecido o endereço completo caso esteja localizado fora da raiz de instalação do Bind, como por exemplo "/chroot/var/bind/langhi.com.br.zone", porém não esqueça de dar as permissões e propriedades necessárias para o usuário "named", senão o Bind não funcionará.
No Fedora Core 8, a localização padrão destes arquivos é "/var/named/chroot/var/named".
Vamos escrever o arquivo de zona para "langhi.com.br" usando:
# vi langhi.com.br.zone
$TTL 1D
;Especificando o nome do servidor e o e-mail do administrador
@ IN SOA @ admin.langhi.com.br. (
2008081900 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
Onde:
- $TTL = parâmetro que indica o tempo de vida da informação desta zona, ou seja, neste caso, ela será relida por outro servidor somente após 1 dia (lembre-se que os servidores guardam informações em cache);
- @ = a melhor leitura para o caractere "@" é "este servidor" e/ou "esta zona";
- IN = em;
- SOA = Start Of Authority - Indica qual o servidor responsável pelo domínio desta zona;
- admin.langhi.com.br - e-mail do responsável pelo servidor (note a ausência de @);
- ( ) = parâmetros adicionais;
- Serial = número de série das informações do servidor;
- Refresh = tempo o qual o servidor DNS aguardará para replicar suas informações;
- Retry = tempo para espera de uma nova tentativa de replicação (se a anterior falhar);
- Expire = tempo de vida da autoridade do servidor;
- Minimun = tempo mínimo para armazenar a zona em cache.
Para melhor entendimento, vamos ler a primeira parte do arquivo como o Bind faria a leitura: "Esta zona está em autoridade neste servidor, email do responsável admin@langhi.com.br, serial 2008081900, replicarei em 1 dia, caso não consiga tento de novo em 1 hora. Falo ao DNS que me consultar, que serei autoridade em até uma semana, então deverá confirmar se ainda serei autoridade e ele deve guardar as informações de meu domínio por pelo menos 3 horas".
Ajustados os parâmetros de funcionamento da zona, vamos agora informar ao Bind quem é o servidor de nome deste domínio, usando:
@ NS //Leia: Este servidor é Name Server
Caso seja outro servidor, o nomeie aqui com:
dns2 NS
Se o nosso servidor de e-mail for interno, vamos indicá-lo aqui. No caso, mostrarei no exemplo com dois servidores, qual o primeiro tem maior prioridade do que o segundo (ou seja, o segundo será consultado se o primeiro falhar). Usamos aqui os valores 10 e 50 para estabelecer prioridades. Quanto menor o valor, maior será a prioridade.
. IN MX 15 mail1.langhi.com.br
. IN MX 20 mail2.langhi.com.br
E finalmente vamos indicar ao Bind quem são os computadores deste domínio, usando:
//Servidores
directory A 192.168.1.21
fps A 192.168.1.23
router A 192.168.1.1
//Estações
lab_a A 192.168.1.100
lab_b A 192.168.1.101
lab_c A 192.168.1.102
lab_d CNAME lab_a
Lembra-se da listinha sugerida no começo do arquivo? Aqui está a verdadeira utilidade dele. Não iremos neste momento inserir os endereços atribuídos por DHCP. Descreverei em novo artigo esta integração. Note que escrevemos o hostname, que tipo de registro se trata e o IP. Os registros possíveis são:
- A - Relação endereço/IP direta;
- AAAA - Relação endereço IPv6 direta;
- NS - Servidor DNS do domínio;
- CNAME - "Apelido" de uma máquina, ou seja, um endereço que aponta para outro endereço, ao invés de apontar para um IP;
- MX - Servidores de e-mail;
- PTR - Apontador, que indica o caminho inverso de um IP. Veremos adiante;
- SOA - Início da Autoridade;
- TXT - Indicar uma string de texto para um hostname;
- SRV - Mostra serviços presentes na rede (utilizado para AD).
Nosso arquivo deve ter ficado assim:
$TTL 1D
;Especificando o nome do servidor e o e-mail do administrador
@ IN SOA @ admin.langhi.com.br. (
2008081900 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS
//Servidores
directory A 192.168.1.21
fps A 192.168.1.23
router A 192.168.1.1
//Estações
lab_a A 192.168.1.100
lab_b A 192.168.1.101
lab_c A 192.168.1.102
lab_d CNAME lab_a