Desenvolvendo um servidor DNS no CentOS

Neste artigo explico o que é um servidor de DNS e demonstro como instalar utilizando o BIND, usando como exemplo a configuração em um servidor Zimbra.

[ Hits: 68.341 ]

Por: Marcos Vinicius Campez em 31/10/2012 | Blog: http://bytelivre.net


Introdução



O que é DNS

"O DNS (Domain Name System - Sistema de Nomes de Domínios) é um sistema de gerenciamento de nomes hierárquico e distribuído operando segundo duas definições:
  • Examinar e atualizar seu banco de dados.
  • Resolver nomes de domínios em endereços de rede (IPs).

O sistema de distribuição de nomes de domínio foi introduzido em 1984, e com ele, os nomes de hosts residentes em um banco de dados pode ser distribuído entre servidores múltiplos, diminuindo assim a carga em qualquer servidor que provê administração no sistema de nomeação de domínios. Ele baseia-se em nomes hierárquicos e permite a inscrição de vários dados digitados além do nome do host e seu IP. Em virtude do banco de dados de DNS ser distribuído, seu tamanho é ilimitado e o desempenho não degrada tanto quando se adiciona mais servidores nele. Este tipo de servidor usa como porta padrão a 53.

O servidor DNS traduz nomes para os endereços IP e endereços IP para nomes respectivos, e permitindo a localização de hosts em um domínio determinado. Num sistema livre o serviço é implementado pelo software BIND. Esse serviço geralmente se encontra localizado no servidor DNS primário."

Fonte: Wikipedia

O que é BIND

"BIND (Berkeley Internet Name Domain ou, como chamado previamente, Berkeley Internet Name Daemon[1]) é o servidor para o protocolo DNS mais utilizado na Internet,[2] especialmente em sistemas do tipo Unix, onde ele pode ser considerado um padrão de facto. Foi criado por quatro estudantes de graduação, membros de um grupo de pesquisas em ciência da computação da Universidade de Berkeley, e foi distribuído pela primeira vez com o sistema operacional 4.3BSD.

O programador Paul Vixie, enquanto trabalhava para a empresa DEC, foi o primeiro mantenedor do BIND. Atualmente o BIND é suportado e mantido pelo Internet Systems Consortium.

Para a versão 9, o BIND foi praticamente reescrito. Ele passou a suportar, dentre outras funcionalidades, a extensão DNSSEC e os protocolos TSIG e IPv6."

Fonte: Wikipedia

Neste artigo mostro uma forma de implementar um servidor DNS utilizando o BIND, tomei como exemplo uma configuração de um servidor de e-mail Zimbra para ficar mais prático a instalação.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação e configuração
   3. Testes
Outros artigos deste autor

Baixando arquivos do Megaupload e Rapidshare pelo terminal

Desenvolvendo tutoriais mais dinâmicos com o Wink

Inventário "like a boss" com OCS Server

Enviando e-mails pelo terminal

Zabbix 2 no CentOS 6 - Instalação e configuração

Leitura recomendada

Usando o Guitar Pro no Linux

Benchmark de hardware e CFLAGS usando o ubench

Redmine 2.1.4 no Debian Squeeze - Instalação e configuração

tzwatch - Navegando pelo horário mundial no Debian

Montando uma rádio de internet no Linux

  
Comentários
[1] Comentário enviado por danniel-lara em 31/10/2012 - 18:33h

Parabéns pelo artigo

[2] Comentário enviado por markintux em 31/10/2012 - 21:04h

Obrigado Danniel!!!


[3] Comentário enviado por Linuxlrt em 01/11/2012 - 16:07h

Muito bom

[4] Comentário enviado por rahremix em 01/11/2012 - 16:13h

Favoritado!

Parabéns pelo artigo!

[5] Comentário enviado por markintux em 01/11/2012 - 16:22h

Muito Obrigado trevizol e rahremix! Precisando estamos ai!

[6] Comentário enviado por mateusfreak em 10/11/2012 - 06:53h

Desculpe, estou iniciando no Linux.
Já vi instalarem na minha antiga empresa o CENTOS com todos os serviços.

No seu artigo depois de ¨Editar arquivo /etc/named.zones para definir as zonas. ¨ nao entendi mais nada rsrsr....

Pode explicar?

Obrigado!

[7] Comentário enviado por Polnoraref em 11/11/2012 - 01:51h

Não há nenhuma configuração feita no /etc/named.conf isso foi proposital ???? Quando reiniciei o named ele processou o named.conf em vez do named.zones e obviamente não deu certo :(... tem alguma configuração extra ?? Uso o centOS 6.3 e bind é o mais recente :)

Parabéns pelo artigo :)



[8] Comentário enviado por markintux em 12/11/2012 - 08:21h

Nesta parte do artigo mateusfreak, estou definindo as zonas para acesso no meu servidor DNS. :)


[6] Comentário enviado por mateusfreak em 10/11/2012 - 06:53h:

Desculpe, estou iniciando no Linux.
Já vi instalarem na minha antiga empresa o CENTOS com todos os serviços.

No seu artigo depois de ¨Editar arquivo /etc/named.zones para definir as zonas. ¨ nao entendi mais nada rsrsr....

Pode explicar?

Obrigado!



[9] Comentário enviado por markintux em 12/11/2012 - 08:22h

Quando o named.conf carrega jeffersonfreitas, dentro do arquivo, ele já importa as configurações do named.zones! :)


[7] Comentário enviado por jeffersonfreitas em 11/11/2012 - 01:51h:

Não há nenhuma configuração feita no /etc/named.conf isso foi proposital ???? Quando reiniciei o named ele processou o named.conf em vez do named.zones e obviamente não deu certo :(... tem alguma configuração extra ?? Uso o centOS 6.3 e bind é o mais recente :)

Parabéns pelo artigo :)





[10] Comentário enviado por sk4d1nh4 em 13/11/2012 - 16:17h

Olá Marcos,

Primeiramente, parabéns pelo artigo e pela iniciativa. Mas tenho uma duvída.

Se dentro do arquivo /etc/named.zones na parte da zona reversa voce definiu o arquivo como 'file "2.168.192.db";' o arqivo de zona reversa que voce utilizou (/var/named/2.168.192.in-addr.arpa.db) não deveria ter o mesmo nome?? Acredito que ele vá procurar pelo arquivo e não vai encontrar.

[11] Comentário enviado por markintux em 13/11/2012 - 16:24h

Olá!

É verdade, falta um .db no final do arquivo:

"zone "2.168.192.in-addr.arpa" IN {"

nesta linha acima! Muito bem visto!

Obrigado.


[10] Comentário enviado por sk4d1nh4 em 13/11/2012 - 16:17h:

Olá Marcos,

Primeiramente, parabéns pelo artigo e pela iniciativa. Mas tenho uma duvída.

Se dentro do arquivo /etc/named.zones na parte da zona reversa voce definiu o arquivo como 'file "2.168.192.db";' o arqivo de zona reversa que voce utilizou (/var/named/2.168.192.in-addr.arpa.db) não deveria ter o mesmo nome?? Acredito que ele vá procurar pelo arquivo e não vai encontrar.


[12] Comentário enviado por Neo_X em 16/11/2012 - 12:34h

O arquivo padrão nao seria o /etc/named.conf ao invés do /etc/named.zones ?

[13] Comentário enviado por markintux em 16/11/2012 - 12:37h

No CentOS é o named.zones para criar estas zonas. No named.conf há um link para este aquivo!


[12] Comentário enviado por pedrophsp em 16/11/2012 - 12:34h:

O arquivo padrão nao seria o /etc/named.conf ao invés do /etc/named.zones ?



[14] Comentário enviado por rozz em 20/11/2012 - 16:51h

olá, montei um servidor DNS com sucesso e quando instalei o httpd deu tudo errado com DNS! minha duvida e o seguinte, O que é preciso para montar um domínio .org . Tipo, eu mesmo quero ter o servidor em casa, experimentar um poco, pois estou começando agora no Centos e estou meio perdido. Sei que não será fácil, mas estou disposta a tentar e colocar pra rodar pelo menos um site sem ter que pagar nada, teria como? Caso não fui claro favor me falar pra que eu possa reformular a pergunta. Muito obrigado

[15] Comentário enviado por markintux em 20/11/2012 - 17:22h

Você poderá criar um dominio .org seguindo os passos aqui normalmente. Porém, é necessário ter um IP fixo com um registro no registro.br apontado para ele. Recomendo não criar um server assim em casa. É muito melhor já comprar os planos que essas prestadoras de serviços possui.

Abraços.


[14] Comentário enviado por rozz em 20/11/2012 - 16:51h:

olá, montei um servidor DNS com sucesso e quando instalei o httpd deu tudo errado com DNS! minha duvida e o seguinte, O que é preciso para montar um domínio .org . Tipo, eu mesmo quero ter o servidor em casa, experimentar um poco, pois estou começando agora no Centos e estou meio perdido. Sei que não será fácil, mas estou disposta a tentar e colocar pra rodar pelo menos um site sem ter que pagar nada, teria como? Caso não fui claro favor me falar pra que eu possa reformular a pergunta. Muito obrigado



[16] Comentário enviado por rozz em 20/11/2012 - 19:45h

markintux, obrigado pela sugestão, mas tipo, se eu for pagar o registro.br pra que finalidade eu teria um servidor DNS? somente para dominio local??? Existe uma maneira de ter um doninio de modo que não tenha que pagar ou contratar alguma empresa para fazer?

Tenho noção avançada em programação, mas nunca encarei o linux, instalei o Centos 6, configurei o DNS com Bind, não tenho muita pratica, não falta tempo e nem força de vontade lol... Ainda não sei quais programas devo usar, por isso estou perdido, entrei no seu site achei muito útil. está me ajudando muito. vlw

[17] Comentário enviado por markintux em 21/11/2012 - 08:23h

Exatamente. Sem o registro.br não é possível fazer o que você pretende. Pois lá, os servidores de DNS já são registrados todos para receberem as informações dos principais.

Abraços!


[16] Comentário enviado por rozz em 20/11/2012 - 19:45h:

markintux, obrigado pela sugestão, mas tipo, se eu for pagar o registro.br pra que finalidade eu teria um servidor DNS? somente para dominio local??? Existe uma maneira de ter um doninio de modo que não tenha que pagar ou contratar alguma empresa para fazer?

Tenho noção avançada em programação, mas nunca encarei o linux, instalei o Centos 6, configurei o DNS com Bind, não tenho muita pratica, não falta tempo e nem força de vontade lol... Ainda não sei quais programas devo usar, por isso estou perdido, entrei no seu site achei muito útil. está me ajudando muito. vlw



[18] Comentário enviado por guilhermealano em 04/04/2013 - 18:18h

Markintux, ao reiniciar o bind aparece o seguinte erro.

"Parando o named: [ OK ]
Iniciando o named: /etc/init.d/named: line 97: 2531 Abortado /usr/sbin/named-checkconf $ckcf_options ${named_conf} > /dev/null 2>&1

Error in named configuration:
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
mem.c:1246: REQUIRE(ctx->references == 1) failed.
[FALHOU]
"

Segue os procedimentos que voce citou.

[19] Comentário enviado por slacker.d em 09/11/2013 - 13:23h

Mesmo erro do guilhermealano........
Alguem sabe pq desse erro?



[18] Comentário enviado por guilhermealano em 04/04/2013 - 18:18h:

Markintux, ao reiniciar o bind aparece o seguinte erro.

"Parando o named: [ OK ]
Iniciando o named: /etc/init.d/named: line 97: 2531 Abortado /usr/sbin/named-checkconf $ckcf_options ${named_conf} > /dev/null 2>&1

Error in named configuration:
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
mem.c:1246: REQUIRE(ctx->references == 1) failed.
[FALHOU]
"

Segue os procedimentos que voce citou.



[20] Comentário enviado por kinlhp em 27/11/2013 - 23:06h

Boa noite markintux,
estou recebendo o seguinte erro no final do processo

[root@centos64x64 ~]# service named restart
Stopping named: [ OK ]
Starting named: /etc/init.d/named: line 97: 3937 Aborted (core dumped) /usr/sbin/named-checkconf $ckcf_options ${named_conf} > /dev/null 2>&1

Error in named configuration:
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
/etc/named.conf:166: bad secret 'bad base64 encoding'
mem.c:1246: REQUIRE(ctx->references == 1) failed.
[FAILED]
umount: /var/named/chroot/var/named: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@centos64x64 ~]#
[root@centos64x64 ~]# nslookup 192.168.2.161
;; connection timed out; trying next origin
;; connection timed out; no servers could be reached

[root@centos64x64 ~]#

Obs.: VirtualBox=CentOS 6.4 64bits, Network=Internal Network, IP=192.168.2.161, hostname=centos64x64, centos64x64.kin.com.br, 2.168.192.in-addr.arp


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts