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.715 ]

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


Continuando a configuração do DNS cache



Acesse o diretório /chroot/named/etc:

# cd /chroot/named/etc

Edite o arquivo named.conf e escreva as linhas abaixo:

acl minha-rede {
   127.0.0.1;
   10.10.10.0/24 ## Aqui você deve informar o endereço da sua rede ou o ip das máquinas que podem utilizar este DNS
};

options {
  allow-query {minha-rede; };
  allow-recursion { minha-rede; };
  directory "/conf";
  pid-file "/var/run/named.pid";
  statistics-file "/var/run/named.stats";
  dump-file "/var/run/named.db";
  version "[secured]";
  listen-on-v6 { any; };
  forward only;
  forwarders { 0.0.0.0; 1.1.1.1; }; ## Aqui você pode colocar algum DNS para realizar um forwarders caso na queria utilizar deixe estas linhas comentadas
};

# The root nameservers
zone "." {
  type hint;
  file "db.rootcache";
};

# localhost - forward zone
zone "localhost" {
  type master;
  file "db.localhost";
  notify no;
};

# localhost - inverse zone
zone "0.0.127.in-addr.arpa" {
  type master;
  file "db.127.0.0";
  notify no;
};

Certifique se que sua máquina tem acesso a internet.

Acesse o diretório /chroot/named/conf:

# cd /chroot/named/conf

Digite o comando abaixo para criar um arquivo chamado db.rootcache dentro do /chroot/named/conf:

# dig @a.root-servers.net . ns > /chroot/named/conf/db.rootcache

Dentro do /chroot/named/conf crie o arquivo db.localhost e inclua estas linhas abaixo:

; ; db.localhost
;

$TTL 86400

@ IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

IN NS @
IN A 127.0.0.1

Dentro do /chroot/named/conf crie o arquivo db.127.0.0 e inclua estas linhas abaixo:

; ; db.127.0.0
;

$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.

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 autenticado - Instalar e configurar

Squid como proxy transparente: Instalando e configurando

Leitura recomendada

O que fazer após instalação do elementary OS Luna

Autenticando clientes Linux em servidor NIS FreeBSD de forma segura

Atualização do Motorola Milestone para Android 2.2 (Froyo) - O Pulo do Gato

Utilizando certificados e-CNPJ e e-CPF no Linux

Habilitando e configurando Raid 1 (espelhamento) no Slackware 12

  
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