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

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

Squid autenticado - Instalar e configurar

OpenVPN - Instalação e configuração

Squid como proxy transparente: Instalando e configurando

Leitura recomendada

Atualizando o Red Hat com o up2date

Instalando NSClient++ e NC_net

Configuração de interface de rede ethernet e wireless

Batalha Apache, PHP e MySQL com vestígios de versão antiga

Configuração de impressora Lexmark Z25-35

  
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