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.730 ]
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
ZABBIX Proxy com MySQL
Exemplos práticos de tabelas de partições
Configuração fácil de um servidor PPP
Como transformar Salix OS em Slackware
Configurando o CACIC (parte 4)
Comentários
excelente artigo, gostei mesmo!
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.
Mensagem
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.
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.
Mensagem
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.
amigos gostaria de saber se é possível usar a tecnologia 3G no linux ubuntu ou slackware?
Grato!!!!
Mensagem
amigos gostaria de saber se é possível usar a tecnologia 3G no linux ubuntu ou slackware?
Grato!!!!
Mensagem
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?
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.
Mensagem
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.
pelo yum da pra instalar ele? ou faltaria algum pacote?
Mensagem
pelo yum da pra instalar ele? ou faltaria algum pacote?
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?
Mensagem
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?
Pelo yum você consegue instalar sim pois ele resolve todas as dependências.
Mensagem
Pelo yum você consegue instalar sim pois ele resolve todas as dependências.
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)
Mensagem
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)
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!!!
Mensagem
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!!!
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?
Mensagem
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?
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.
Mensagem
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.
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?
Mensagem
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?
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 ?
Mensagem
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 ?
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.
Mensagem
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.
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.
Mensagem
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.
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?
Mensagem
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?
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.
Mensagem
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
Enviar