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