Resolvendo erros nas consultas do DNS do Windows com o Bind

Muitas vezes nos deparamos com problemas que ou não tem muita lógica(no Windows é comum isso ;-P) ou demoramos para achar a solução, e precisamos que a empresa funcione assim mesmo. Procuramos de um lado pra outro, reviramos logs, ou event viewers, e nada diz porque o problema ocorre.

Em uma empresa de um cliente onde a rede é controlada pelo Windows 2008: Domínio, DNS, DHCP, Certificados e etc. Começou a aparecer um problema meio que sem pé nem cabeça, mas que prejudica o funcionamento da rede:

- O DNS não resolve endereços!
- Como assim? Não resolve nada?
- Resolve os endereços do domínio local e da internet,
 mas não resolve alguns endereços da internet.
- Quais?
- Esse é o problema, não tem uma lógica. 
Um endereço ele resolve e outra hora não, 
ou não resolve e minutos depois passa a resolver. Não tem um padrão.

Salvo as devidas proporções, esse foi o dialogo que tive com o Administrador Microsoft dessa empresa. E como os usuários viam muitas mensagens de : “Este endereço não pode ser resolvido” . Ele estava recebendo muitas reclamações sobre a internet e como o proxy é Linux(Squid) mas usa o DNS do Windows também estava com esse problema.

Como resolver se não se identifica a causa no sistema?

Simples use o Linux.

A “solução”, não foi definitiva pois ele ainda está procurando no sistema o que causa este erro, foi instalar no proxy o Bind, mas se eu apenas instalasse o Bind funcionaria perfeito pra internet mas não para os hosts e servidores locais do domínio (empresa.local no exemplo). O AD já tem o secundário dele, e não necessita de que o proxy seja mais um secundário. O que fazer?

Simples: Use a diretiva “forwarders” do Bind. A função dessa diretiva é redirecionar uma consulta para um servidor específico ANTES de pesquisar na estrutura da internet (Root Servers). Assim se o servidor consultado for o responsável por informações de um determinado domínio o Bind aceita as informações que ele passa, e se ele não tiver autoridade sobre o domínio consultado o Bind vai à internet.

Com isso se eu pesquiso ad.empresa.local o Bind vai primeiro ao servidor que está na “forwarders” e se ele responder que tem esse nome registrado o Bind pega essa resposta e repassa ao cliente. Porém se a pesquisa for um domínio como 82c.bd8.myftpupload.com o Bind vai primeiro ao servidor que está na “forwarders” e como nesse caso a resposta é negativa, o próprio Bind vai à internet e obtém o IP relacionado com esse nome e entrega para o cliente.

Assim mesmo que o DNS do Windows tenha problemas em resolver para fora, para dentro do domínio não apresenta problemas, os clientes não perdem as máquinas locais e sempre resolvem na internet.

Vamos parar de conversa e vamos aos fatos.

Instale o Bind:

root # apt-get install bind9

Entre no seu diretório de configuração:

root # cd /etc/bind

Edite o arquivo named.conf.options e acrescente as seguintes linhas dentro da seção options:
forwarders { 172.16.1.1; 172.16.1.2; };

Seu arquivo vai ficar mais ou menos assim:

options {
        directory "/var/cache/bind";
        forwarders { 172.16.1.1; 172.16.1.2; };
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

Pronto, agora é só reiniciar o Bind e deixar que ele faça seu trabalho como redirecionador de consultas e cache de nomes de internet.

Abraços e não se esqueçam de comentar, curtir nossa Página no Facebook e visitar nossos links de Livros em promoção com a nossa Parceira Brasport.