Configurando servidor de DNS no CentOS
Autor: Pablo Gonzalez | Publicado: 2013-03-01T17:01:00-08:00


O Domain Name System – Sistema de Nomes de Domínio – é de fundamental importância em uma rede.

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.

1 - Pacotes necessários:
Execute os comando abaixo para realizar a instalação dos pacotes.

yum install bind bind-libs bind-utils caching-nameserver -y

Após a instalação dos pacotes acima, podemos visulizar alguns arquivos padrões:

# ls -l /var/named
-rw-r--r-- 1 named named 195 Fev 15 2004 localhost.zone
-rw-r--r-- 1 named named 2518 Fev 15 2004 named.ca
-rw-r--r-- 1 named named 436 Jun 14 2007 named.local

named.ca

Neste arquivo vem por padrão todos os rootserver da internet, ou seja, os servidores de DNS mundiais . 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

O arquivo de zona reversa ou seja resolver IP pra nome

2 - Um dos primeiros arquivos que iremos alterar será o arquivo host.conf:

Esse arquivo define a ordem de consulta da máquina, que no caso mudaremos para DNS depois hosts;

# vim /etc/host.conf

order bind,hosts
multi on

3 - O próximo arquivo que iremos alterar é o hosts

# vim /etc/hosts

127.0.0.0.1 localhost.localdomain localhost 
10.1.1.1 servername.domain.com.br servername

O arquivo hosts especifica o nome da máquina e domínio. Neste arquivo devemos obrigatoriamente ter pelo menos o localhost e nosso próprio IP.

4 - O próximo arquivo a alterarmos é o resolv.conf

# vim /etc/resolv.conf

search domain.com.br
nameserver 10.1.1.1
nameserver 201.21.192.105

No arquivo resolv.conf 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 e outro externo.

Vamos agora ao que interessa:

5 - Criando uma Zona de DNS

Vamos editar o arquivo named.conf, nele são cadastradas as zonas, nele também efetuamos várias configurações opcionais, tipo se você tiver um dns secundário, permitir replicação, recursos de view interna e view externa, e muitas outras opções. Vou mostrar abaixo um exemplo de como inserir uma zona master e uma zona reversa de um domínio:

# vim /etc/named.conf

# Nome da zona master
zone "domain.com.br" IN {
type master;
check-names ignore;
file "domain.com.br";
};

# Nome da zona Reversa
zone "2.168.192.in-addr.arpa" IN {
type master;
check-names ignore;
file "192.168.2.1";
};

Nos parametros file de cada zona indica o nome do arquivo onde serão cadastrados os hosts e outras opções.

6 - Agora vamos criar os arquivos conforme seus nomes indicados nas zonas acima.

# touch /var/named/dominio.com.br
# touch /var/named/192.168.2.1

# chown named.named /var/named/dominio.com.br
# chown named.named /var/named/192.168.2.1


7 - Agora vamos ao conteúdo dos arquivos de zonas

Vamos editar o arquivo de zona master do domínio dominio.com.br:

# vim /var/named/dominio.com.br

Segue abaixo o conteúdo do arquivo dominio.com.br que pode ser usado como template para criação de outros arquivos:


$TTL 86400 ; 1 dia
@ IN SOA servidor.dominio.com.br. root.servidor.dominio.com.br. (
2008092181 ; serial
10800 ; refresh (3 horas)
900 ; retry (15 minutos)
604800 ; expire (1 semana)
86400 ; minimum (1 dia)
)
NS servidor.dominio.com.br.
IN 1H MX 5 mailserver
mailserver IN 1H A 192.168.2.10
webmail IN 1H A 192.168.2.11
fileserver IN 1H A 192.168.2.12

Esse é o conteúdo da zona master do domínio dominio.com.br, salve o arquivo e saia.

Vamos agora editar o conteudo do arquivo de zona reversa do domínio:

# vim /var/named/192.168.2.1

$TTL 86400 ; 1 dia
@ IN SOA servidor.dominio.com.br. root.servidor.dominio.com.br. (
2008092181 ; serial
10800 ; refresh (3 hotas)
900 ; retry (15 minutos)
604800 ; expire (1 senama)
86400 ; minimum (1 dia)
)
NS servidor.dominio.com.br.
10 PTR mailserver.dominio.com.br.
11 PTR webmail.dominio.com.br.
12 PTR fileserver.dominio.com.br.

Esse é o conteúdo da zona master do domínio 192.168.2.1, salve o arquivo e saia.


Segue abaixo algumas informações sobre os parâmetros do arquivo:


- SOA (start of authority) - ele informa quem é responsável pelo conteúdo.

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

- refresh: é o período 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 diferentes, 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 zona quando não consegue comunicação com o primário.
- minimum: tempo mínimo de vida que a zona tem.



8 - Bom, depois de termos editado os arquivos e lido o cada parâmetro significa, vamos agora inicializar o serviço e colocar para rodar no boot da máquina.

Para inicializar execute o comando abaixo:

# service named start

Para que o serviço sempre inicialize no boot execute o seguinte comando:

# chkconfig named on

9 - Agora, por último vamos aos testes

Iremos fazer abaixo um dos testes mais simples que é executar um ping no nome

# ping -c 3 mailserver.dominio.com.br
PING mailserver.dominio.com.br (192.168.2.10) 56(84) bytes of data.
64 bytes from mailserver.dominio.com.br (192.168.2.10): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from mailserver.dominio.com.br (192.168.2.10): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from mailserver.dominio.com.br (192.168.2.10): icmp_seq=3 ttl=64 time=0.049 ms


# ping -c 3 webmail.dominio.com.br
PING webmail.dominio.com.br (192.168.2.11) 56(84) bytes of data.
64 bytes from webmail.dominio.com.br (192.168.2.11): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from webmail.dominio.com.br (192.168.2.11): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from webmail.dominio.com.br (192.168.2.11): icmp_seq=3 ttl=64 time=0.049 ms

# ping -c 3 fileserver.dominio.com.br
PING fileserver.dominio.com.br (192.168.2.12) 56(84) bytes of data.
64 bytes from fileserver.dominio.com.br (192.168.2.12): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from fileserver.dominio.com.br(192.168.2.12): icmp_seq=2 ttl=64 time=0.044 ms
64 bytes from fileserver.dominio.com.br(192.168.2.12): icmp_seq=3 ttl=64 time=0.049 ms


Para testar se o reverso do seu endereço está funcionando, isso é muito importante para os servidores de email execute o comando abaixo:

# host mailserver.dominio.com.br
mailserver.dominio.com.br has address 192.168.2.10

# host webmail.dominio.com.br
webmail.dominio.com.br has address 192.168.2.11

# host fileserver.dominio.com.br
fileserver.dominio.com.br has address 192.168.2.12


Existem outros comandos bem mais completos que consultam outros parâmetros dos registros de dns

* dig
* nslookup