Configurando um servidor de DNS

Esse artigo explica o conceito de DNS, seu surgimento, como funcionam as consultas entre os servidores, como configurar um cliente e um servidor de nomes.

[ Hits: 326.119 ]

Por: tiago de castro dima em 24/07/2003


Servidores DNS



Agora vamos ver como preparar um servidor dns, uma máquina que é capaz de responder por domínios. Dois diretórios são muito importantes nesse trabalho:
  • /etc
  • /var/named
Dentro de /etc temos o arquivo named.conf. Dentro de /var/named temos os arquivos correspondentes a cada domínio pelo qual nosso servidor é responsável. Abaixo temos um exemplo de /etc/named.conf. Observe onde aparece o termo "zone". Cada vez que encontrá-lo significa que ali existe a indicação de um domínio.

Note também o início do arquivo onde aparece "directory /var/named", etc. Essa é a parte do arquivo em que dizemos ao BIND em qual diretório os arquivos dos domínios devem ser procurados. Então a coisa funciona assim:
  1. crio uma nova zona para um domínio novo qualquer
  2. crio em /var/named o arquivo referente a essa zona (domínio)
Vamos criar uma zona para meudominio.com.br, basta imitar ou copiar e alterar uma zona já existente.

options {
     directory "/var/named";
};

zone "." {
     type hint;
     file "named.ca";
};

zone "0.0.127.in-addr.arpa" {
     type master;
     file "0.0.127.in-addr.arpa.zone";
};

zone "localhost" {
     type master;
     file "localhost.zone";
};

zone "meudominio.com.br" {
     type master;
     file "meudominio.com.br.zone";
};

OK, não foi difícil. Uma outra coisa que devemos prestar atenção é na diretiva type. Na zona que criamos, estabelecemos como "master". Isto significa que o nosso servidor é o servidor primário dessa zona. Se fôssemos o servidor secundário, trocaríamos "master" por "slave". Vamos ver isso depois. Salve o named.conf e vá para o diretório /var/named e copie o arquivo "named.local" para "meudomínio.com.br". Use o comando:

# cp named.local meudominio.com.br

Vamos agora editar esse arquivo e deixá-lo OK, mas antes vamos ver alguns detalhes do mesmo.

No início do arquivo temos uma informação TTL (time to live) 3600 (Ex.: $TTL 86400). Essa diretiva indica a quantidade de tempo que as informações desse domínio são válidas para outros servidores. Calma, vamos entender melhor. Quando um outro DNS recebe a informação sobre esse domínio, a mesma ficará no cache dessa máquina durante 3600 segundos (ou uma hora). Com essa informação em cache, a próxima vez que alguém perguntar por esse domínio, a consulta não precisa ser feita ao DNS responsável (ao menos durante aquela 1hora em que a informação está no cache). Se houver uma outra consulta após essa 1 hora, aí sim, haverá uma nova consulta ao DNS responsável.

Vamos ver sobre as outras informações:
  • 2003072401 ;Serial
  • 28800 ;Refresh
  • 14400 ;Retry
  • 3600000 ;Expire
  • 86400 ;Minimum
SERIAL: é uma versão do arquivo. Toda vez que houver uma alteração no arquivo do domínio, precisamos alterar esse número para que o servidor secundário saiba e possa copiar essa nova versão. No exemplo acima temos: 2003072401. Analisando da direita para esquerda, podemos dizer que temos a versão 01 de um arquivo criado em 24/07/2003. Não existe uma regra fixa pra essa informação, mas você deve criá-la de uma forma que possa interpretá-la depois.

REFRESH: indica o tempo, em segundos, em que o servidor secundário deve fazer uma consulta ao primário para saber sobre os domínios do mesmo. É nessa hora que a informação serial é importante, pois, caso o serial de algum domínio tem sido alterado, então o servidor secundário realiza uma nova cópia do mesmo. No exemplo acima o refresh deve ser feito em 28800 segundos, ou seja, de 8 em 8 horas.

RETRY: se por algum motivo, na hora em que o servidor secundário fizer o "refresh" no primário, e o mesmo não responder, então ele tentará uma nova consulta no tempo estabelecido em "retry".

EXPIRE: é o tempo máximo que o servidor secundário pode ficar sem consultar o primário. Após esse tempo, a informação sobre o domínio será expirada.

Vamos agora para as outras informações.

; definição do servidor DNS
@      IN      NS      localhost.

; definição do servidor de e-mail
@      IN      MX      mail.meudominio.com.br

; definição dos hosts
localhost      IN      A      127.0.0.1
www            IN      A      127.0.0.1
mail           IN      A      200.198.71.220
ftp            IN      A      127.0.0.1

Informações iniciadas com ";" são consideradas comentários.

A linha:

@      IN      NS      localhost.


informa quem é o servidor de nomes (NS) para "meudomínio.com.br (representado pelo símbolo @)".

A linha:

@      IN      MX      mail.meudominio.com.br


informa quem é o servidor de e-mail (MX) para "meudomínio.com.br (representado pelo símbolo @)".

Por fim temos a definição dos hosts, ou seja, os endereços IP das máquinas que respondem por determinados serviços como: www, ftp, mail, etc.

localhost      IN      A      127.0.0.1
www            IN      A      127.0.0.1
mail           IN      A      200.198.71.220
ftp            IN      A      127.0.0.1


Observe por exemplo na linha iniciada em "mail". Essa linha resolve a indicação MX (mail exchanger) feita acima. Na indicação MX, dissemos que o servidor de e-mail desse domínio é o "mail.meudominio.com.br". Quando fazemos isso, devemos dizer quem e a máquina "mail" (que no nosso caso e a 200.198.71.220). Observe também que indicamos qual o IP para o serviço WWW, ou seja, quando alguém buscar por "www.meudominio.com.br", então, conforme a nossa configuração, o servidor será o 127.0.0.1, assim como para o serviço FTP.

Para testarmos esse domínio é preciso reiniciarmos o serviço NAMED. Para fazer isso vamos para o diretório onde estão os principais serviços do nosso sistema. O diretório é o /etc/rc.d/init.d. Dentro do diretório digite:

# ./named status

Esse comando nos dirá se o serviço está sendo executado ou parado. Se estiver sendo executado, então você pode usar ./named restart para parar e iniciar o serviço imediatamente. Se estiver parado, então use ./named start. Para testarmos o nosso domínio podemos fazer alguns testes usando o comando ping.

$ ping www.meudominio.com.br
$ ping mail.meudominio.com.br
$ ping ftp.mwudominio.com.br


Esperamos ter clareado um pouco a idéia de DNS nesse artigo. Aproveitamos também para pedir a sua colaboração para deixar esse artigo mais completo, pois sabemos que há muitas outras coisas a serem aqui acrescentadas e isso fará com que o site (www.useredhat.com.br) armazene uma quantidade grande e importante de informações que cada vez mais usuários poderão utilizar.

Página anterior    

Páginas do artigo
   1. O que é DNS?
   2. Como funcionam as consultas DNS?
   3. Clientes DNS
   4. Servidores DNS
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

GoboLinux? Que distro é essa? (Parte 2 - Instalação)

Problema resolvido: VMware Server 1.0.7 rodando no Debian Lenny Linux

Dhcp3-server e Bind9 no Debian 4 Etch Linux

Conexões SSH sem senha fácil e descomplicado

Upgrade Debian 4.0 (etch) para 5.0 (lenny) - 9 passos para um upgrade feliz

  
Comentários
[1] Comentário enviado por ThiegoXar em 14/08/2003 - 18:15h

Legal este artigo mas presiva ser um pouco mais esplicativo, assim como vc disse no começo, DNS e um assunto serio, os nomes de arquivos passam em branco e causa grande duvidas em nos leigos, falta a mostra dos arquivos finais, complicado... Mas e isso ai, Valeu.

[2] Comentário enviado por gustavo_marcon em 30/08/2003 - 11:22h

eu configurei estes arquivos mas o dns só funciona se eu inserir uma linha referente ao domínio dentro do arquivo /etc/hosts.

Acho que meu micro procura primeiro neste arquivo e se não encontrar nem tenta procurar no DNS.

Sabe como posso reverter isso?

[3] Comentário enviado por lamss em 22/02/2004 - 16:22h

Essa materia começou bem, MAS, como tudo que é bom dura pouco no final deixou a desejar... por exemplo o que tem nos arquivos:

file "named.ca";
file "0.0.127.in-addr.arpa.zone";
file "localhost.zone";
file "meudominio.com.br.zone";

Vou ficar a procura de outro tutorial mais explicativo...
Valeu a tentativa... quem sabe no proximo...

[4] Comentário enviado por vmarv em 27/04/2004 - 20:44h

Essa Configuração serve para um servidor DNS em um IP Dinamico, como o Velox? Gostaria como muito de aprender sobre isto.

[5] Comentário enviado por keoki em 30/06/2004 - 08:50h

Como foi dito começou bem, mais podia ter ficado melhor .... faltou bastante coisa.

[6] Comentário enviado por guitarloko em 03/11/2004 - 12:18h

legal a dica... soh o final não ficou muito claro, mas valeu mesmo assim!!

um abraço!

[7] Comentário enviado por dowglaz em 26/04/2006 - 01:27h

Calma galera...
Descobri como achar estes arquivos, que, por sinal, eu também não havia achado. É só baixar e instalar o BIND. O autor do artigo esqueceu de mencionar este detalhezinho.
http://www.isc.org/index.pl?/sw/bind/

[8] Comentário enviado por HeltonBarbosa em 01/09/2006 - 11:26h

No inicio estava tudo beleza, mas foi chegando no final e começou a complicar. Vou continuar procurando por mais artigos que explique detalhadamente como configurar um servidor DNS. Mas, valeu, pelo menos vc fez algo...

[9] Comentário enviado por carlos.geane em 10/11/2006 - 15:07h

Parabéns pelo artigo, está excelente e muito bem explicado, me ajudou muito, parabéns.

[10] Comentário enviado por deirane21 em 15/12/2006 - 13:24h

marcos medeiros 15/12/06

e quando não encontra-se o arquivos named,dominiox.data,dominiox.rev no diretorio var?

[11] Comentário enviado por fba em 24/04/2007 - 11:17h

para complementar as explicações sobre os arquivos de configuração creio que http://www.linuxbsd.com.br/portal/?q=node/47 possa ajudar

[12] Comentário enviado por danielpinguim em 14/05/2007 - 10:14h

ficou legal kra

mas axo q na hora de testar
o nslookup eh melhor

[13] Comentário enviado por rafaiusko em 17/08/2007 - 15:16h

Em si é um bom artigo, porém não comenta nada sobre ocorrer algum erro no final da configuração...

Valeu a intenção!

[14] Comentário enviado por OSiriX em 18/08/2008 - 01:14h

POxa Eu achei otima a introduçao !!
e a configuraçao do Bind .. muito resumida facil de enteder ..
parabens !!!!

[15] Comentário enviado por Tifudi em 30/12/2008 - 10:50h

O artigo é bom!!! mas se fosse ele que tivesse escrito! O mesmo artigo foi escrito no site http://www.marceloeiras.com.br/linux/tutorial/dns/dns.htm Por isso que ele não explicou melhor no final, pq ai vc percebe que a pessoa não tem conhecimento nenhum de Linux somente copiou de outro site. Assim até minha mãe!!!!!

[16] Comentário enviado por hbobenicio em 06/01/2009 - 00:13h

Cara... excelente artigo! Muito bom mesmo!
Eu que sou bem leigo no assunto, com suas explicações didáticas e simplificadas, pude finalmente entender o que é um DNS e como ele funciona. A parte da configuração do servidor poderia ter sido um pouco mais trabalhada, mas o começo e até a configuração do cliente ficaram muito bons mesmo!!!

Parabéns, e continue com os ótimos artigos! A comunidade agradece.

[17] Comentário enviado por antoniojbs em 18/11/2009 - 11:54h

parabéns pelo tuto tiago vai me ajudar muito estou abrindo uma empresa em pernambuco onde vou trabalhar claro com muito linux e principalmente na parte de servidores

[18] Comentário enviado por fernandoamador em 14/12/2009 - 20:36h

Gostei do artigo. Parabéns

[19] Comentário enviado por micerqueira em 01/02/2010 - 18:57h

pq no registrobr da essa resposta?
DNS desconhecido

alguem da uma força?

[20] Comentário enviado por tecnoplace em 22/06/2010 - 22:09h

gente preciso de instalar o zimbra aqui, mas o meu calcanhar de aquiles é o dns. me ajudem a configurar um dns que eu possa propagar meu dominio na net, pois nao conheco muito de configuracao de dns. tem 5 meses que to lutando com isso. e nao consigo acertar.

[21] Comentário enviado por mlegidio em 17/08/2010 - 18:06h

Conforme o named.conf, o comando cp named.local meudominio.com.br deveria ser cp named.local meudominio.com.br.zone. Pois, no linha file o named procura um arquivo chamado meudominio.com.br.zone e não meudominio.com.br

para testar dominios criados, deveria ter adicionado esse servidor DNS em seu /etc/resolv.conf e utilizar os comandos nslookup ou dig

[22] Comentário enviado por giuzao em 04/01/2011 - 14:55h

Muito bom artigo!
Parabéns!

[23] Comentário enviado por rodrigocontrib em 14/06/2012 - 11:15h

To tentando instalar essa parada mas to esbarrando num lance!
Não to conseguindo encontrar uma pa de arquivos no etc.
Para começar o /etc/named e o /var/named nao tem, instalo via apt-get isntall bind9 bem vi que o artigo é antigo, mas hoje em 2012 debian 6 tenho os repositorios :

deb http://ftp.us.debian.org/debian squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

Se alguem puder me ajudar desde já eu agradeço!!!


[24] Comentário enviado por hudsonsilvasilva em 05/10/2012 - 22:12h

Alguem pode me ajudar ?
estou com um problema no meu WHM do meu Servidor que eu não consigo apontar meu domínio para meu servidor
alguem ai sabe o que deve ser ?

[25] Comentário enviado por ferinha em 24/02/2013 - 11:50h

Parabéns, saint666, artigo muito importante e com uma forma clara de se entender. Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts