Desvendando o Mundo do GNU/Linux Headline Animator

quarta-feira, 30 de janeiro de 2013

Configurando o Servidor DNS


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  <-------- www <-------- google <-------- com <--------- br <------------- .
( endereço IP )         (subdomínio)    (Servidor     (subdomínio)      ccTLD               Raiz
                                                             DNS                                     (resgistro.br)      (root servers)
                                                             responsável pelo site)
         
       

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:

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

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

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

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

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

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