Bind trabalhando como servidor de Cache DNS + CentOS 6

E ai galera, aqui vou abordar a instalação de um servidor DNS somente para cache, em alguns casos precisamos de um servidor de dns somente para agilizar um serviço de proxy ou trabalhar como encaminhador de um servidor DNS Windows, com isso podemos configurar o Bind para trabalhar somente fazendo cache.

  • Rede que vou levar em consideração que vai poder consultar o servidor: 10.13.0.0/24

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialcentos6_en para que não falte nenhum pacote ou configuração.

Agora vamos instalar o DNS Bind

Vamos instalar os pacotes necessários

yum install bind-chroot bind-utils bind-libs -y

Agora vamos inserir ele na inicialização do sistema

chkconfig named on

Agora vamos reiniciar o serviço para que ele monte a jaula

/etc/init.d/named restart

Agora vamos fazer backup do arquivo de configuração do Bind

cp -Rfa /etc/named.conf{,.bkp}

Vamos agora ajustar o /etc/resolv.conf

vim /etc/resolv.conf
nameserver 127.0.0.1

Agora vamos acertar o arquivo de controle da versão e acesso ao dns

vim /etc/named.conf
#/etc/named.conf
options {
 listen-on port 53 { 127.0.0.1; 10.13.0.0/24; };
 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     { localhost; 10.13.0.0/24; };
 recursion yes;
 version "Não Disponível";
};
 
#Controles 
include "/etc/rndc.key";
 
controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
};
 
#LOGS
logging {
 channel xfer-log {
 file "/var/log/named.log";
 print-category yes;
 print-severity yes;
 print-time yes;
 severity info;
 };
 category xfer-in { xfer-log; };
 category xfer-out { xfer-log; };
 category notify { xfer-log; };
 
 channel update-debug {
 file "/var/log/named-update-debug.log";
 severity  debug 3;
 print-category yes;
 print-severity yes;
 print-time      yes;
 };
 channel security-info    {
 file "/var/log/named-auth-info.log";
 severity  info;
 print-category yes;
 print-severity yes;
 print-time      yes;
 };
 category update { update-debug; };
 category security { security-info; };
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
include "/etc/named.rfc1912.zones";

Agora vamos gerar a chave do rndc, geralmente este comando demora !

rndc-confgen -a -c /etc/rndc.key -k rndc-key -b 256

Agora precisamos acertar as permissões dos arquivos

chown root:named /etc/rndc.key
chmod 640 /etc/rndc.key

Agora já podemos reiniciar o nosso bind

/etc/init.d/named restart

Vamos analisar os logs para ver se não temos nada de errado

tail -f /var/log/messages 
Jul  5 21:20:00 centos6 named[1280]: automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA
Jul  5 21:20:00 centos6 named[1280]: command channel listening on 127.0.0.1#953
Jul  5 21:20:00 centos6 named[1280]: managed-keys-zone: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 0.in-addr.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone localhost/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone localhost.localdomain/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
Jul  5 21:20:00 centos6 named[1280]: all zones loaded
Jul  5 21:20:00 centos6 named[1280]: running

Vamos fazer uma consulta para testar se o nosso servidor esta respondendo

nslookup www.uol.com.br
Server:   127.0.0.1
Address:  127.0.0.1#53
 
Non-authoritative answer:
Name: www.uol.com.br
Address: 200.147.67.142
Name: www.uol.com.br
Address: 200.221.2.45

Agora vamos fazer um teste com o dig

dig -t any bol.com.br
 
; <<>> DiG 9.9.0-RedHat-9.9.0-1.el6 <<>> -t any bol.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3663
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 3, ADDITIONAL: 5
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;bol.com.br.      IN  ANY
 
;; ANSWER SECTION:
bol.com.br.   300 IN  A 200.147.3.199
bol.com.br.   46800 IN  MX  20 mx3.bol.com.br.
bol.com.br.   3600  IN  TXT "v=spf1 ip4:200.147.0.248/29 ip4:200.147.96.168/29 include:uol.com.br -all"
bol.com.br.   3600  IN  SOA eliot.uol.com.br. nsmaster.bol.com.br. 2012032601 3600 1800 432000 3600
bol.com.br.   3600  IN  NS  charles.uol.com.br.
bol.com.br.   3600  IN  NS  eliot.uol.com.br.
bol.com.br.   3600  IN  NS  borges.uol.com.br.
 
;; AUTHORITY SECTION:
bol.com.br.   3600  IN  NS  charles.uol.com.br.
bol.com.br.   3600  IN  NS  eliot.uol.com.br.
bol.com.br.   3600  IN  NS  borges.uol.com.br.
 
;; ADDITIONAL SECTION:
mx3.bol.com.br.   3600  IN  A 200.147.36.13
eliot.uol.com.br. 86338 IN  A 200.221.11.98
borges.uol.com.br.  86338 IN  A 200.147.255.105
charles.uol.com.br. 86338 IN  A 200.147.38.8
 
;; Query time: 27 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jul  5 21:25:15 2012
;; MSG SIZE  rcvd: 379

Agora configurar os clientes para utilizar este servidor como servidor de DNS, ou podemos configurar ele como sendo um encaminhador do Windows ;)

Referências