Configurando o Servidor DNS
Autor: Fagner Oliveira IT Soluctions | Publicado: 2013-01-30T21:01:00-03:00


Configurando o Servidor DNS


Ouvimos com frequência que o sistema de DNS é maior base de dados do mundo. Realmente é, mas existe uma diferença fundamental entre o DNS e um sistema de banco de dados tradicional, como por exemplo, um servidor MYSQL usado por um servidor WEB, que é o fato do DNS ser uma base de dados distribuída.

No topo da cadeia dos domínios temos os root servers, que são 14 servidores espalhados pelo mundo cuja função é responder a todas as requisições de resolução de domínio.

Ao contrário do que muita gente pensa um nome de domínio é lido da direita para esquerda. Temos os domínios primários ( Top level domains, ou TLD), como o .com, .net, .info, .cc, .biz, etc..., e, em seguida , os domínios secundários ( country code TLD, ou ccTLD ), que recebem o prefixo de cada país, como .com.br, .net.br, nesse caso o “com” é um subdomínio do domínio “br”.

Embora seja totalmente imperceptível, todo nome de domínio termina com um ponto, que representa o domínio raiz. Quando um dos root servers recebe um pedido de resolução de domínio, ele encaminha a requisição aos servidores da entidade responsável pelo TLD do qual ele faz parte. Eles, por sua vez, encaminham a requisição ao servidor DNS responsável pelo domínio, que finalmente envia a resposta ao cliente.

Ao acessar o endereço “google.com.br”, o cliente começaria enviando a requisição ao servidor DNS informado na configuração da rede ( o DNS do provedor ). A não ser que tenha a informação em cache, o servidor consulta um dos root servers, perguntando: “quem é o servidor responsável pelo domínio google.com.br?”.

O root server responde que não sabe, mas verifica qual o servidor responsável pelos domínios “.br”, e orienta o cliente a refazer a pergunta, dessa vez a um servidor da entidade correspondente. Esse processo pode envolver mais um ou dois servidores, mas, eventualmente, o cliente chega ao servidor DNS do responsável pelo site que finalmente fornece o IP do servidor ao cliente.

74.125.234.120 &nbsp;&lt;-------- www &lt;-------- google &lt;-------- com &lt;--------- br &lt;------------- .
( endereço IP ) &nbsp; &nbsp; &nbsp; &nbsp; (subdomínio) &nbsp; &nbsp;(Servidor &nbsp; &nbsp; (subdomínio) &nbsp; &nbsp; &nbsp;ccTLD &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Raiz
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DNS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (resgistro.br) &nbsp; &nbsp; &nbsp;(root servers)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;responsável pelo site)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
&nbsp; &nbsp; &nbsp; &nbsp; 

Configurando o Bind

O servidor DNS mais usado do Linux é o Bind, que aprenderemos a configurar a seguir, você pode optar por instalá-lo no mesmo servidor onde o Apache estar, mas do ponto de vista da segurança não é uma boa ideia, pois o ideal é que sejam utilizados servidores separados ou usar chroot, onde o próprio Bind é executado em um ambiente separado, sem ter acesso aos demais arquivos do sistema.

Instalação

Para instalar o Bind, você primeiramente deve procurar pelos pacotes “bind” ou “bind9” no gerenciador de sua distribuição. Nas distribuições derivadas do Debian a versão recomendada é o “Bind9”.

# apt-get install bind9

No CentOS

# yum install bind

O principal arquivo de configuração do Bind fiva em: “/etc/bind/named.conf”, por padrão ele já vem configurado com servidor de cache. Dentro do arquivo de configuração você encontra entradas como essas:

&nbsp; &nbsp; zone &nbsp;“.” {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type &nbsp;hint;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file “/etc/bind/db.root”;
&nbsp; &nbsp; };

&nbsp; &nbsp; zone &nbsp;“localhost” {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type master;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file “/etc/bind/db.local”;
&nbsp; &nbsp; };

&nbsp; &nbsp; zone “127.in-addr.arpa” {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type master;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file “/etc/bind/db.127”;
&nbsp; &nbsp; };

&nbsp; &nbsp; &nbsp;zone “0.in-addr.arpa” {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type master;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file “/etc/bind/db.0”
&nbsp; &nbsp; };

&nbsp; &nbsp; &nbsp;zone “255.in-addr.arpa” {
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type master;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file “/etc/bind/db.255”;
&nbsp; &nbsp; };

Como pode-se observar cada uma das seções indica a localização de um arquivo, onde vai a configuração referente a ela. Por exemplo:
Na primeira seção (zone) é indicado o arquivo “/etc/bind/db.root”, que contém os endereços dos 14 root servers, que o bind irá contatar na hora de fazer a resolução dos domínios.

Se tratando CentOS 5 há uma exceção onde, os arquivos de configuração do Bind não são instalados junto com o pacote, então é necessário que você faça a configuração manualmente, como em:

# cp -r /usr/share/doc/bind-9.?.?/sample/etc/* /etc
# cp -r usr/share/doc/bind-9.?.?/sample/var/named/* /var/named/

Para concluir, o serviço referente ao Bind pode se chamar “bind” ou “named”, dependendo da distribuição.

Para restartar o serviço pelos derivados do Debian:

# /etc/ini.d/bind9 restart

ou

# /etc/init.d/bind restart

Para restartar o serviço pelos derivados do RedHat:

service named restart