DNS Cache no Bind9

Este artigo demonstra como podemos criar um DNS cache utilizando o Bind9. Todas as informações neste artigo tiveram como base pesquisas na internet e testes reais em produção.

[ Hits: 123.731 ]

Por: Adriano em 17/11/2008 | Blog: http://www.mendes-it.com.br


Configuração do DNS cache (parte 4)



Controlando o daemon com rndc.

Crie este arquivo caso ele não exista:

# vi /etc/rndc.conf

Inclua as linhas abaixo no rndc.conf:

#
# /chroot/named/etc/rndc.conf
#


options {
default-server 127.0.0.1;
default-key "rndckey";
};

server 127.0.0.1 {
key "rndckey";
};

key "rndckey" {
algorithm "hmac-md5";
secret "secret key here";
};

Crie esta chave:

# cd /chroot/named/etc
# /usr/local/sbin/dnssec-keygen -a HMAC-MD5 -b 256 -n HOST rndc


# cat nome-da-cache.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: xeTGutBAdP6/dVKKfxOlv0bPOTnAd4A1qosMbs/dwVJI= ### A chave terá este formato, mas não terá as mesmas informações que esta

Copie a string gerada após a palavra key e copie ela no arquivo rndc.conf, no marcador rndckey após o parâmetro secret entre aspas.

Apague a chave.

# rm -rf sua_chave.*

Crie um link simbólico para o arquivo rndc.conf para facilitar a administração e o rndc.conf funcionar adequadamente.

# ln -sf /chroot/named/etc/rndc.conf /etc/rndc.conf

Página anterior     Próxima página

Páginas do artigo
   1. Download e instalação
   2. Configuração do DNS cache
   3. Continuando a configuração do DNS cache
   4. Configuração do DNS cache (parte 3)
   5. Configuração do DNS cache (parte 4)
   6. Configuração do DNS cache (parte 5)
Outros artigos deste autor

OpenVPN - Instalação e configuração

Squid como proxy transparente: Instalando e configurando

Squid autenticado - Instalar e configurar

Leitura recomendada

Impressão usando LPRng e KPrinter

O poderoso Nagios

Instalando Gnome DropLine (Slackware 10.2+)

Criando ou aumentando a memória virtual (SWAP) no Linux

ARM, utilização de snapshot de pacotes no Arch Linux

  
Comentários
[1] Comentário enviado por fabianotecnico em 18/11/2008 - 09:09h

excelente artigo, gostei mesmo!

[2] Comentário enviado por tatototino em 18/11/2008 - 14:06h

Pode tirar uma dúvida?
Caso não tenha a opção forward only no named.conf e somente a opção forwarders { name servers} o que acontece?
E também se só existir a opção forward only ele redireciona para que servidores, para o raiz "."?
Obrigado.

[3] Comentário enviado por a.mendesaguiar em 18/11/2008 - 17:26h

Pelo teste que fiz aqui se retirar a forward only ele da um erro e o serviço não inicia.

Se você quer deixar ele se nenhum forward configurado basta você comentar estas linas ou retira-las.

forward only;
forwarders { 0.0.0.0; 1.1.1.1; };

Desta forma ele faz a consulta direta nos servidores raiz.

Faz um teste retira estas linhas e acompanha o log

da um tail -f /var/log/messages vai ser este caminho nas distribuições fedora, redhat ou centOS

Desta forma você consegue ver que no momento em que ele não acha o registro em um DNS ele faz a consulta em outro servidor raiz.

[4] Comentário enviado por mofm3@ em 20/11/2008 - 13:30h

amigos gostaria de saber se é possível usar a tecnologia 3G no linux ubuntu ou slackware?
Grato!!!!

[5] Comentário enviado por andriopj em 13/03/2009 - 21:08h

muito bom esse artigo...
ira me ajudar muito
mas por enquanto, vc poderia me responder uma pergunta?

para cache
bastaria instalar ele (seguir o tutorial: http://www.vivaolinux.com.br/artigo/DNS-Cache-no-Bind9?pagina=1) e pronto?
ou teria que alterar algo no resolv.conf e dhcpd.conf?

[6] Comentário enviado por a.mendesaguiar em 14/03/2009 - 18:42h

Para que ele trabalhe em modo cache basta seguir este tutorial que irá funcionar perfeitamente.

O resolv.conf deve apontar para a sua propria máquina conforme está descrito no artigo.

[7] Comentário enviado por andriopj em 17/03/2009 - 20:20h

pelo yum da pra instalar ele? ou faltaria algum pacote?

[8] Comentário enviado por andriopj em 17/03/2009 - 20:36h

tive o seguinte erro na instalacao:
./configure --with-openssl=/usr/local/openssl --disable-ipv6 --disable-threads --prefix=/usr/local
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking for ar... /usr/bin/ar
checking for etags... no
checking for emacs-etags... no
checking for perl5... no
checking for perl... /usr/bin/perl
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH


o q seria isso?

[9] Comentário enviado por a.mendesaguiar em 18/03/2009 - 10:47h

Pelo yum você consegue instalar sim pois ele resolve todas as dependências.

[10] Comentário enviado por andriopj em 18/03/2009 - 11:31h

entao, agora que eu estive vendo
instalei ele pelo yum, e fui localizando os arquivos "locate nome do arquivo"
e modificando-os conforme descrito aqui no tutorial (porem, alguns estavam exatamente igual ao do artigo).
contudo, quando dei: rndc status

recebi a seguinte mensagem:
rndc: connect failed: 127.0.0.1#953: connection refused


em tail -f /var/log/messages
me aparece o seguinte erro:
Mar 18 07:10:52 tucana named[15337]: found 1 CPU, using 1 worker thread
Mar 18 07:10:52 tucana named[15337]: using up to 4096 sockets
Mar 18 07:10:52 tucana named[15337]: loading configuration from '/etc/named.conf'
Mar 18 07:10:52 tucana named[15337]: /etc/named.conf:46: '{' expected near '"'
Mar 18 07:10:52 tucana named[15337]: loading configuration: unexpected token
Mar 18 07:10:52 tucana named[15337]: exiting (due to fatal error)

[11] Comentário enviado por marceloapgouveia em 25/03/2009 - 18:00h

Caros amigos,

Excelente guia de configuração postado aqui pelo Adriano!!!

Gostaria de saber o seguinte:

- Este guia serve para Slackware?
- Como é o funcionamento? A medida que ele vai resolvendo os endereços, vai armazenando ou não?
- Para que serve ao certo o "chroot"? Li a respeito na internet, mas nada muito objetivo.

Grato!!!

[12] Comentário enviado por andriopj em 26/04/2009 - 10:10h

poderia me exclarecer uma duvida?

uso fedora 10
se eu instalar o bind atraves do yum...
ele ja instala todas as dependecias... correto!

mas no caso para ele rodar apenas para cache
eu devo adicionar no.conf dele:

forward only;
forwarders

é isso? ou eu devo criar aquelas zonas todas la?

[13] Comentário enviado por a.mendesaguiar em 26/04/2009 - 12:49h

Pelo um eu instalei em um fedora 9

yum install bind*

E ele gerou automaticamente o arquivo /etc/named.conf com as configirações necessárias.

Com o Fedora 10 eu não testei pois achei ele muito lento durante a inicialização.

[14] Comentário enviado por andriopj em 08/06/2009 - 13:51h

fiz conforme descrito aqui, nenhum erro...
porem...
quando dei o comando:
chmod a+x /chroot/named.start

tive a seguinte resposta:
chmod: impossivel acessar `/chroot/named.start': Arquivo ou diretorio nao encontrado

o q devo fazer?

[15] Comentário enviado por a.mendesaguiar em 08/06/2009 - 19:48h

Andri

A propria mensagem diz

"" chmod: impossivel acessar `/chroot/named.start': Arquivo ou diretorio nao encontrado ""

Você verificou se o arquivo existe.

Qual a versão o seu SO ?

[16] Comentário enviado por andriopj em 15/07/2009 - 14:19h

meu sistema eh o Fedora 10
fiz a instalacao dessa vez atraves do yum...

ele fez toda a instalacao automaticamente, dependencias, tudo...

deixei o named da seguinte forma: /etc/named.conf


#####
options {
listen-on port 53 { 172.167.0.0/16; 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { 172.167.0.0/16; localhost; };
recursion yes;
tcp-clients 1000;
version "Not Available";
recursive-clients 1000;
forwarders { 201.10.128.2; 201.10.120.3; 189.38.95.95; 189.38.95.96; };
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";
#####

alterei o resolv.conf
coloquei o dominio e 127.0.0.1

alterei o dhcpd... coloquei como dns o endereco do servidor...

dei start nele: service named start
restart no dhcpd...

bom, funcionou normalmente, estou navegando.
porem, se eu paro o named, eu continuo navegando do mesmo jeito O.o
ta certo?

como faco o teste?


PS:
se eu entro no prompt de comando em alguma maquina da rede interna e digito:
nslookup www.terra.com.br
ele informa o endreco do servidor

e depois o endereco do terra.

[17] Comentário enviado por a.mendesaguiar em 15/07/2009 - 14:32h

Faz um teste simples.. tira o cabo de rede da máquina do DNS.

Você tem algum proxy ? ou dns setado dentro das configurações do proxy.


[18] Comentário enviado por andriopj em 16/07/2009 - 00:37h

opa.. ja consegui...

parece que era as opcaoes dns_nameservers e fqdncache do squid...
funcionando 100%

mas me diz... falam que eh sempre bom colocar no squid os servidores dns...
como adiciono agora, para ele procurar na mesma maquina? 127.0.0.1?

[19] Comentário enviado por a.mendesaguiar em 16/07/2009 - 14:49h

O DNS da sua máquina deve ser 127.0.0.1 ou o ip da propria máquina.

Se o proxy estiver na mesmo servidor pode ser 127.0.0.1 ou o proprio ip da máquina.

Para ver o log do dns você tem que dar um cat /var/log/messages.

Mas lembre que nas configurações do DNS você deve habilitar o ip 127.0.0.1 para resolver nome e o ip do servidor.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts