Cache sem forward
Imagine que você, apenas instalou o pacote 
bind para um servidor local e configurou as estações para utilizarem o endereço IP deste 
servidor como DNS primário, mesmo sem fazer nenhuma alteração no arquivo de configuração padrão. 
Desta forma, o BIND estará fazendo o trabalho de um servidor de cache de DNS, encaminhando as requisições para um 
root server (se 
necessário) sem responder diretamente para um determinado domínio. 
Este tipo de cenário é chamado de 
Cache sem forward.
Instalação
No 
Debian e derivados:
# apt-get install bind9
No 
CentOS e 
Fedora, o pacote 
bind instala diretamente a versão mais recente, sem opção de escolher entre 
a versão BIND 8 ou BIND 9:
# yum install bind
No 
Slackware, você encontra o pacote dentro da pasta 
n do primeiro CD. Ao instalar, verifique a versão incluída na 
distribuição. Use sempre o BIND 8 ou BIND 9, nunca o BIND 4, que não está mais em uso.
Esta é a instalação mais simples possível do servidor BIND:
-  Não há autoridade sobre qualquer domínio;
-  Não há repasses de consultas para outro servidor, o próprio servidor se encarrega de obter as respostas no seu cache. Caso não as encontre 
solicita a partir dos root servers;
-  Todas as consultas são armazenadas em um cache local em memória por um prazo determinado pela configuração de cada domínio consultado.
O arquivo "named.conf.options" necessário para esta configuração está abaixo.
/etc/bind/named.conf.options:
options {
     directory "/var/cache/bind";
     };
     // a caching only nameserver config
     //
zone "." {
         type hint;
         file  "/etc/bind/db.root";
};
	
O arquivo "db.root" da configuração da zona raiz " . " possui o endereço atualizado dos 13 servidores (root -level) da hierarquia de DNS espalhados 
pelo mundo.
A configuração da zona raiz não é necessária pois ela estar presente no arquivo, em 
/etc/bind/named.conf.default-zones.
Com esta configuração, seu servidor DNS consegue funcionar por conta própria, não dependendo do DNS do provedor. O DNS do provedor, por 
atender um número maior de clientes, vai sem dúvida, ter um cache mais rico que o seu, o que resulta em resoluções de nomes mais rápidas.
Por outro lado, não depender do servidor de nomes do provedor, pode ser uma vantagem caso ocorram falhas frequentes no serviço de DNS oferecido 
para sua rede.
Cache com forward
O servidor DNS do provedor de acesso, por ter potencialmente uma quantidade muito maior de clientes que o servidor da rede interna, possui 
também um cache muito maior. 
Isto significa que as consultas são provavelmente respondidas mais rapidamente que as do nosso servidor interno. Por outro lado, pode não ser 
desejável depender inteiramente de um serviço externo. 
Neste caso, configuramos o servidor para o meio termo:
-  O servidor local faz cache de todas as consultas;
-  Caso receba uma consulta cuja resposta não esteja no cache, ele vai fazer uma busca recursiva na Internet até obter a resposta; caso ela já 
exista em cache, então a resposta é imediata;
-  Se o servidor DNS do provedor estiver indisponível o servidor local fará uma busca por conta própria.
Uma configuração básica do cache com 
forward ficaria assim:
   options {
        directory  "/var/cache/bind";
        allow-query { localhost; };
        allow-query-on { IP da interface  do servidor local; };
        forwarders { DNS do provedor de acesso primário; DNS do provedor de acesso 
secundário; };
        forward first;
   };
     //
    // a caching only nameserver config
   //
   zone "." {
        type hint;
        file "/etc/bind/root.db;
   };
A opção 
allow-query no exemplo acima, permite apenas a própria máquina { 127.0.0.1 } e máquinas interligadas à interface do servidor 
local fazerem consultas no DNS. Qualquer outra máquina será recusada e terá uma mensagem de log no arquivo: 
/var/log/messages. 
Exemplo:  
Sep  19 16:55:21 host named[2305]: client 172.16.10.10#34532:query (cache) denied
 
Veja que isto não é substituto para um firewall: 
-  Como este servidor de DNS é interno, não faz o menor sentido deixá-lo exposto na Internet. Mesmo com esta diretiva de controle de acesso, o 
servidor named estará escutando na porta 53 de todas as interfaces da máquina e recebendo tráfego potencialmente hostil.
O melhor é: 
-  Não deixar chegar tráfego desnecessário no seu servidor DNS. Se for instalá-lo na mesma máquina que serve de roteador para a Internet, 
bloqueie o tráfego da porta 53 para TCP e UDP.
Uma outra opção, é colocar o endereço do serviço OpenDNS, cujos valores atualmente são:
-  OpenDNS (1): 208.67.222.222
-  OpenDNS (2): 208.67.220.220