FreeBSD, Linux, Cisco, Asterisk IP PBX, VOIP, SEO, Email Resources, Web Publishing, Tech, Reviews, How to, Wordpress, Mash-ups, RSS, Niche Marketing, Internet Marketing, Online Entrepreneurship, Make Money Online, Affiliate Marketing Tips and Social Media Marketing at NetworksExperts.com
Random header image... Refresh for more!

Instalando e configurando DNS com Djbdns - Tinydns e Dnscache

Bem diferente do BIND que é ao mesmo tempo servidor de cache e autoritativo, o sistema de DNS Djbdns possui 2 daemons separados para tal serviço. O DNSCACHE para caching, onde ele faz as buscas nos root servers para efetuar a resolucao de nomes em uma rede.
O TINYDNS, é servidor de nomes autoritativo, somente responderá requisições que estejam em seu banco de dados.

Lembro aqui que os dois não podem rodar no mesmo IP.

Para instalá-los é bem simples, aqui uso o ports do FreeBSD para dar exemplo de como isso pode ser feito:

Instalando:

root~#cd /usr/ports/dns/djbdns/ && make all install clean

Via ports ele ja adiciona os principais patchs para o funcionamento, ainda instala o daemontools e uicspi-tcp, que são necessários. No entanto você poderá instalar manualmente os pacotes:

http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

Agora adicionamos alguns usuários para que o programa rode com segurança:

root~# pw useradd tinydns -g djbdns -d /dev/null -s /sbin/nologin
root~# pw useradd dnscache -g djbdns -d /dev/null -s /sbin/nologin
root~# pw useradd dnslog -g djbdns -d /dev/null -s /sbin/nologin

Configurando:

root~# mkdir /var/djbdns && cd /var/djbdns/
root~# dnscache-conf dnscache dnslog /var/djbdns/dnscache IP_DA_MAQUINA_QUE_VAI_RODAR

Ex.:

root~#dnscache-conf dnscache dnslog /var/djbdns/dnscache 192.168.10.1

Agora ja com o daemontools rodando, crie um link simbólico para o /service:

root~# ln -s /var/djbdns/dnscache /service/

Em 5 segundos você ja tem o dnscache rodando, porem ele ainda estará somente aceitando conexões no loopback 127.0.0.1, voce precisará dar permissão para outros IPs usarem o serviço:

root~# touch /var/djbdns/dnscache/root/ip/192.168.10

Liberamos assim para toda a rede 192.168.10, se preferir libere somente no seu IP específico.

Test it!

root~# cat /dev/null >/etc/resolv.conf && echo nameserver 127.0.0.1 >/etc/resolv.conf
root~# host yahoo.com

Se ele resolver, é porque tudo esta funcionando perfeitamente. Use o svstat para checar os servicos rodando abaixo do daemontools:

root~#svstat /service/dnscache/
/service/dnscache/: up (pid 443) 686084 seconds

Vamos agora para o tinydns:

O Tinydns ja é diferente do dnscache, ele é servidor de DNS, com ele voce pode responder autoritativamente para os dominios.

Para instalacão do tinydns, após ter instalado o pacote djbdns, é preciso somente configurá-lo:

root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns IP.DA.MAQUINA

Ex.:

root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns 192.168.10.2

Nao esqueca de subir o programa via daemontools:

root~#ln -s /var/djbdns/tinydns /service/

Voce agora pode adicionar os dominios no tinydns utilizando os programas que o próprio djbdns disponibiliza:

root~# cd /var/djbdns/tinydns/root/
root~# ./add-ns nome_do_dominio ip_do_dominio
root~# ./add-host host_do_dominio ip_do_dominio
root~# ./add-mx nome_do_dominio ip_do_servidor_de_email
root~# make

Eu particularmente utizo um script pessoal que gera as entradas automaticamente para eu copiar
para o data:

root~#more adiciona_dominio_dns.sh
#!/usr/local/bin/bash

echo ”
.$1::ns1.nomedodns.com
.$1::ns2.nomedodns.com
=$1:65.65.200.200
=mail.$1:65.65.200.200
+$1:65.65.200.200
@$1:65.65.200.200:mail.$1″

Execute: ./adiciona_dominio_dns.sh nomedoseudominio.com, desta forma ele criará entradas como:

.nomedoseudominio.com::ns1.nomedodns.com
.nomedoseudominio.com::ns2.nomedodns.com
=nomedoseudominio.com:65.65.200.200
=mail.nomedoseudominio.com:65.65.200.200
+nomedoseudominio.com:65.65.200.200
@nomedoseudominio.com:65.65.200.200:mail.nomedoseudominio.com

prontas para serem adicionadas no arquivo /var/djbdns/tinydns/root/data

apos isso rode:

root~#cd /var/djbdns/tinydns/root/ ; make

Pronto! Assim voce ja tem o tinydns respondendo pelo seu dominio.

Uma questão que sempre encontro nos foruns e Internet a fora é a criação de DNS primário e DNS secundário, exigido na Fapesp para registro de dominios aqui no Brasil.

O tinydns é muito legal nesse aspecto porque voce simplesmente adicionando mais um IP no seu servidor e rodando o instalacao a partir do ponto:

root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns 192.168.10.2

mudando o IP e pasta voce terá quantos servidores DNS precisar:

root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns2 192.168.10.3

root~#cd /var/djbdns && tinydns-conf tinydns dnslog /var/djbdns/tinydns3 192.168.10.4

Percebem que somente alterei a pasta onde ficarão os arquivos e o IP que escutará as requisições, ja o data.cdb criado no DNS 1, vamos chama-lo assim, poderá ser copiado para as pastas dos outros servers sem que precisem ser compilados novamente:

Ex.:

root~#pwd
/var/djbdns/tinydns/root

root~#rsync -arvl data* ../../tinydns2/root/
building file list … done
data
data.cdb

sent 200920 bytes received 64 bytes 401968.00 bytes/sec
total size is 200746 speedup is 1.00

Nesta maquina tenho rodando dois servidores de DNS:

root~#ls -l /var/djbdns/
total 6
drwxr-sr-t 6 root wheel 512 Jun 22 14:20 dnscache
drwxr-sr-t 6 root wheel 512 May 14 13:30 tinydns
drwxr-sr-t 6 root wheel 512 Sep 3 10:23 tinydns2

Esta facilidade de inserir dominios e replicar o servidor rapidamente me atraiu e acredito que será bem util a todos!

0 comments

There are no comments yet...

Kick things off by filling out the form below.

Leave a Comment