Quinta-feira, 05 de maio de 2005 às 12h32

Configuração do serviço DNS

Faltam -1 dias! Inscreva-se agora! O maior encontro de profissionais web da américa latina.

Olá pessoal! Este será meu primeiro artigo como colunista Linux do iMaters. Gostaria de agradecer ao grande amigo Rodrigo, que me indicou para escrever neste espaço, e parabenizar o pessoal do iMasters por abrir este espaço de troca de informações , pois o conhecimento é sempre o melhor caminho para o desenvolvimento.

Neste artigo irei disponibilizar um breve tutorial sobre como configurar um servidor de DNS , e mostrar que isso não é uma missão impossível como muitos pensam, espero que seja útil para todos.

Configuração do serviço DNS

O Domain Name System – Sistema de Nomes de Dominio – é de fundamental importância em uma rede. Ele é responsável por informar o nome ou número IP dos hosts do domínio.

O DNS é um sistema hierárquico em árvore invertida. Tem como origem o ponto (“.”), e a partir daí, os domínios e, abaixo destes, os subdomínios. O nome completo de um host – FQDN = Full Qualified Domain Name – é composto de duas partes: a primeira parte identifica o host dentro do domínio e a segunda parte identifica o domínio. Em www.imasters.com.br, www é o nome do host, e imasters.com.br é o domínio.

Os hosts em um domínio precisam ser alterados, incluídos e removidos. Para isso é necessário ter um host com autoridade para alterar tais informações. Para que fosse possível a delegação de autoridade, foram criadas as zonas. Uma zona contém informações sobre os hosts e subdomínios que fazem parte dela, mas pode delegar um ou mais desses subdomínios para outro host.

Por exemplo, os hosts que são autoritativos para a zona “br” nada sabem sobre a zona “com.br” , exceto quem são os servidores DNS para essa zona, ou seja, quais servidores DNS receberam a delegação de autoridade para a zona.

Existem dois tipos de servidor DNS: primários e secundários. Os primários possuem os arquivos de configuração; os secundários recebem as informações dos primários através de transferências de zona.

As zonas são mapas usados para converter nomes para IP ou vice versa. Por isso são zonas comuns e reversas. O serviço DNS é implementado no Linux por diversos pacotes , o que você verá aquiv é o BINS na versão 9.0 .

A instalação é muito simples, bastando instalar os pacotes bind e bind-utils, que contém o servidor e os clientes, também chamados de resolvedores. O pacote caching-name server pode ser instalado também para criar arquivos de cofiguração padrão.

Primeiro pegue a versão mais nova do BIND, eu escrevi este tutorial com base na versão 9.2.2 que pode ser baixada do site ftp://ftp.isc.org/isc/bind9/9.2.2/bind-9.2.2.tar.gz , ou instale os pacotes RPM´s via APT , que é o programa de instalação de pacotes mais utilizado em distribuições como RedHat, é interessante utilizar o APT pois ele resolve problemas de dependência.

Via APT, estando logado como root digite o seguinte comando no Shell:

# apt-get install bind
#apt-get install bind-utils
#apt-get install caching-namesrver

Estes comandos irão instalar os pacotes necessários para a configuração do serviço de DNS.

Entendendo A Estrutura

Depois da instalção do bind, se você navegar no /var/named você visualizará os seguintes arquivos

. named.ca;
. named.local;
. localhost.zone.

- named.ca --> neste arquivo vem por padrão todos os rootserver da internic ou seja os grandes servidores de DNS do mundo, como o da NASA ns.nasa.org e etc. Sua função e interligar todos os servidores do mundo ou seja se o seu servidor de DNS não sabe onde fica localizado determinado ip ele faz uma consulta a um rootserver que vai lhe dizer a resposta.

- named.local --> neste arquivo vem por padrão a zona local da maquina na entrada do DNS ou seja o localhost

- localhost.zone --> e o arquivo de zona reversa ou seja resolver IP pra nome

Estes arquivos vem por padrão e não são necessárias alterações neles.

Se você navegar no diretório /etc, você irá visualizar o arquivo de configuração do bind, o “named.conf”. Neste diretório existem ainda outros arquivos importantes de configuração de rede que já vem por padrão na instalação do Linux como o “host.conf”, “hosts” e o “resolv.conf “, que são fundamentais para o funcionamento correto do serviço de DNS. Iremos abaixo analisar cada um deles e checar a configuração necessária para que o serviço funcione corretamente.

O primeiro arquivo que iremos configurar é o hosts.conf

#vi /etc/host.conf

Este arquivo especifica a ordem de consulta da máquina, por exemplo se vai ser primeiro no hosts, e depois no DNS , mantenha a configuração deste arquivo de forma a ter a primeira consulta no Bind:

order bind,hosts
multi on

Em seguida edite o arquivo hosts:

#vi /etc/hosts

Este arquivo especifica o nome da máquina e domínio. Neste arquivo devemos obrigatoriamente ter pelo menos o localhost e nosso próprio IP (neste exemplo o IP de nosso servidor de DNS será 192.168.0.1), ou seja, se nossa máquina conter o nome “dns”, e seu domínio for “imasters.com.br”, devemos acrescentar as seguintes entradas neste arquivo:

1270.0.0.1 localhost.localhosdomain localhost
192.168.0.1 dns.imasters.com.br dns

Em seguida edite o arquivo resolv.conf.

#vi /etc/resolv.conf

Neste arquivo você irá configurar qual será o domínio e IP do servidor de DNS que irá utilizar para navegar na internet, ou seja, estamos configurando um servidor de DNS logo utilizaremos nosso próprio servidor, utilize as seguintes configurações neste arquivo:

search imasters.com.br
nameserver 192.168.0.1

Criando Zonas

Agora que instalamos, vimos a estrutura dos arquivos e os configuramos, iremos criar as zonas de domínio. Crie um arquivo no diretório /var/named com o nome de dominio.com.br.hosts por exemplo.

#vi /var/named/imasters.com.br.hosts

Zonas de domínio serão os arquivos responsáveis por dizer ao servidor de DNS qual servidor irá responder pelo serviço web, qual servidor irá responder pelo serviço de e-mail e assim por diante de determinado domínio, ou seja, para qual IP deve apontar um determinado domínio e seus respectivos apelidos.

Segue abaixo um exemplo de arquivo de zona.

$TTL 3600

@ IN SOA dns.imasters.com.br. root.imasters.com.br. (

                         2004071501 ; Serial
                         28800 ; Refresh
                         14400 ; Retry
                         3600000 ; Expire
                         86400 ) ; Minimum

               IN NS dns.imasters.com.br.
               IN MX 5 mail.imasters.com.br.

dns IN A 192.168.0.1
www IN A 192.168.0.2
ftp IN A 192.168.0.3
smtp IN A 192.168.0.4
pop3 IN A 192.168.0.4
mail IN A 192.168.0.4

Cada linha é um registro. O registro tem sintaxe diferente para cada tipo. O tipo SOA (start of authority) é obrigatório e, necessariamente, o primeiro registro . Ele descreve a zona , sua origem (dns.imasters.com.br), quem é responsável por seu conteúdo )(root.imasters.com.br). As diversas opções entre parênteses são:

*serial: um número que identifica a versão de atualização das informações

*refresh: é o peródo do ciclo de atualização. A cada ciclo , os servidores secundários comparam seu número serial com o do servidor primário, e se forem direfentes, ele executa uma transferência de zona.

*retry: define o tempo que o servidor secundário irá esperar para nova tentativa se o primário não responder.

*expiry: tempo máximo que um servidor secundário continua respondendo por uma zon quando não consegue comunicação com o primário.

*minimum: tempo mínimo de vida que a zona tem.

Este arquivo e responsável pela zona imasters.com.br, dizendo ao Servidor DNS que o servidor responsável pelo www tem o IP 192.168.0.2 , o servidor de FTP tem o IP 192.168.0.3 , o servidor de e-mail, pop3 e smtp tem o IP 192.168.0.4.

No caso do dns.imasters.com.br ,é como se chamará o nosso servidor de DNS, e serve pra ele fazer uma busca nele mesmo.

Editando o named.conf

Agora que já foi criado o arquivo de zona, devemos editar o arquivo “named.conf” no diretório /etc , este arquivo irá conter as configurações do IP em que deverá ser aberta a porta 53 , que é a porta padrão do serviço do Bind e a configuração dos IP´s de DNS externo pelo qual seu servidor de DNS deverá realizar a busca caso ele não encontre uma determinada zona em seu próprio serviço.

#vi named.conf

Nele você deverá acrescentar as seguintes alterações:

options {
directory "/var/named";
listen-on { 127.0.0.1; 192.168.0.1; };
forwarders { 200.204.0.10; 200.204.0.138; };

** O listen-on fará com que o bind escute o IP da sua placa de rede e o da interface de loopback

** O forwarders fára com com que o bind realize consulta nos DNS"s de seu provedor, neste caso estou utilizando os DNS"s do speedy para realizar consulta externa.

Agora adicione a entrada da zona do domínio que será cirado ao arquivo fim do arquivo:

};
zone "imasters.com.br" {
          type master;
          file "imasters.com.br.hosts";
};

**O file "imaters.com.br.hosts” é o arquivo de zona que vimos anteriormente, onde estão contidas as informações de IP e aliáses. Salve o arquivo named.conf com as informações acima idicadas.

Rodando o Bind

Caso todas as configurações tenham sido realizadas corretamente, bastará agora subir o serviço do Bind definitivamente, isso indica que você irá abrir a porta 53 de seu servidor para que o serviço de DNS esteja ativo em sua rede. No prompt de comando digite o seguinte comando:

#/etc/rc.d/init.d/named start --> Este comando irá iniciar o serviço do Bind em seu servidor.
#/etc/rc.d/init.d/named stop --> Este comando irá parar o serviço do Bind em seu servidor.

Para checar se o serviço subiu corretamente execute o seguinte comando:

#netstat -an | more --> Com este comando devemos ter a segunte resposta:

udp       0       0 192.168.0.1:53       0.0.0.0:*       OUÇA
udp       0       0 127.0.0.1:53           0.0.0.0:*       OUÇA

Isso indica que o serviço de DNS encontra-se rodando corretamente em seu servidor, com a porta 53 aberta em seu IP da primeira placa de rede “eth0” e em seu loopbak “IO” . Feito isso basta testar se o domínio que criamos em nosso DNS está respondendo corretamente através de um PING:

# ping www.imasters.com.br

PING dns.imasters.com.br (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1 : icmp_seq=0 ttl=118 time=29.3 ms
64 bytes from 192.168.0.1 : icmp_seq=1 ttl=118 time=32.3 ms

Parabéns, seu DnNS está ativo e funcionando corretamente. Espero que esta matéria seja útil para todos.

4 comentários

 Glauber Matos
05/05/2005 16h20

MUITO BOM!

Fala garoto, mostrando seus dotes agora na iMasters, seja Bem-Vindo e sucesso na sua coluna de Linux. Abraços,

 Maurício J. Fávaro
09/05/2005 20h56

Meus parabens!

E ai Leandro?!
como vai cara? poxa agora tb companheiro de aulas virtuais!

bom cara te desejo toda sorte do mundo nesse caminho.. se precisar de qualquer coisa é so me chamar
um abraço e parabens pela materia bem elaborada

Fabio Lody

 marcelo
25/12/2005 11h32

Problema em navegar com o mandriva conectiva 2006

Bom dia Leandro.
Eu comprei o mandriva conectiva 2006 com power pack.
Mas o que acontece, instalado ele quase perfeito que ele já vem com um monte de problema, dai quando eu vou fazer a configuração do adsl speed da telefônica , primeiro ele não conectava, fiquei quinze dias para achar alguma coisa na NET que resolva meu problema, nada nem no site da conectiva não arrumei nada, liguei para o suporte da conectiva por ser software original eles iam-me da o suporte.
Ai que vem o problema ele me disseram que eu tinha que me cadastrar mo site do mandriva expert para eu ter o suporte, que por telefone não daria para dar suporte, outro detalhe ligação para o Paraná sendo que eu estou em São Paulo e não é gratuita não a ligação bem em fim depois de muita luta na internet achei alguma coisa,
Legal mas quando fim a configuração tudo certo não navega ele conecta, mas não navega.
A configuração esta ok fiz e re fiz umas trezentas vezes, não sei o que pode esta acontecendo, já tentei atualizar o pacote rp.pppoe ou pppoe
Apesar de que o mandriva já vem com tudo isso, mas não custa tenta uma atualização né.
Pode ser uma configuração o firefox o no monzila, bem sei lá que pode estar acontecendo, mas se você pode me ajudar agradeço.
Sabe que é interresante no ajato ele configura sozinho a internet e navega por isso não sei o que fazer.
Ajude-me, por favor,
Informação opcional que eu fiz.
dns do uol. 200.211.10.100 1º
200.211.10.101 2º

Grato giorgioalves

 Anderson Ramos Fodra
13/03/2006 00h47

Boa matéria

Olá Leandro, tem como você ensinar a configurar o vi, para que apareçam as cores e atalhos como a da tecla "Insert", e resaltando novamente existe uma diferença grande nos comandos do Debian para o RedHat???

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Leandro Ribeiro é consultor Linux pela empresa Spirit Winner Consultoria e Desenvolvimeto, foi consultor e instrutor do centro de treinamento Linux UTAH LINUX CENTER, é Analista de Sistemas na Digiweb, formado em Análise de Sistemas pela Universidade Bandeirante e possui formação oficial Conectiva 9 com certificação pela instituição de ensino IBTA. É formado pelo curso de Redes avançadas Linux pelo IBTA e possui as certificações LCA,LCS e LCN RedHat pelo UTAH LINUX CENTER.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.