Você está na página 1de 2

Resolvendo problemas de acesso com um DNS local

A internet como a conhecemos funciona em grande parte graas aos servidores DNS, que convertem nomes de domnio nos endereos IP correspondentes. Sem ele, a web seria muito menos amigvel, j que voc teria que manter longas listas com os endereos IP dos sites e servidores que precisa acessar. Sem o DNS, a web talvez nem tivesse se popularizado to rpido em primeiro lugar. Toda esta dependncia traz um inconveniente, que o fato de que voc fica virtualmente desconectado quando os servidores DNS do provedor saem fora do ar. Obviamente, voc ainda continua conectado e pode acessar qualquer servidor atravs do endereo IP, mas voc pode acaso sabe algum de cor? Infelizmente os problemas relacionados aos servidores DNS dos provedores de acesso so extremamente comuns. Muitas vezes mudam os endereos sem aviso, em outras o servidor DHCP (do provedor) configurado incorretamente e fornece endereos errados quando voc se conecta, sem falar nos casos em que os servidores simplesmente ficam inacessveis, sem motivo aparente. Diz o bom senso que o provedor deveria manter dois servidores DNS, em redes separadas, para manter a redundncia, mas o fato que, na maioria dos pequenos servidores, usado um nico servidor, com um simples alias para a placa de rede, que "simula" a existncia de um segundo servidor DNS. Desta forma, temos apenas uma nica mquina, de forma que quando o servidor cai, voc perde simultaneamente tanto o DNS primrio, quanto o secundrio. Para fugir desta calamidade, voc pode passar a usar um servidor DNS local. No Linux voc precisa apenas instalar o pacote "bind" ou "named", usando o gerenciador de pacotes da sua distribuio. Nas derivadas do Debian, voc pode usar o apt-get, como em

# apt-get install bind


O Bind pode ser bastante indigesto de configurar, mas no nosso caso no necessrio alterar a configurao padro, j que queremos apenas acessar a web, basta manter o servio ativo. recomendvel que voc mantenha a porta 53 (tanto TCP quanto UDP) bloqueadas no firewall, de forma que no consigam usar seu DNS de fora. Abra agora o arquivo "/etc/resolv.conf" e inclua a linha "nameserver 127.0.0.1" antes das outras entradas, como em:

nameserver 127.0.0.1 nameserver 208.67.222.222 nameserver 208.67.220.220

Isto faz com que o sistema passe a usar seu servidor DNS local ao invs dos endereos DNS do provedor. Uma segunda opo usar o Dnsmasq, um servidor DNS minimalista, que simplesmente cria um cache dos endereos j acessados, evitando usar o DNS do provedor a cada acesso. Ele uma opo em casos onde os servidores DNS do provedor so estveis, mas a velocidade do acesso no das melhores. Um DNS lento faz com que voc perca vrios segundos no "procurando pelo servidor" ao acessar cada site. Instalar o Dnsmasq igualmente simples, basta procurar pelo pacote no gerenciador da distribuio usada. Ao instalar via apt-get, use:

# apt-get install dnsmasq


A principal observao que voc no pode usar o Dnsmasq junto com o Bind, j que ambos escutam na mesma porta. Antes de instalar o Dnsmasq voc deve desativar e remover o Bind e viceversa. Depois de instalar, adicione a linha abaixo no final do arquivo "/etc/dnsmasq.conf":

listen-address=127.0.0.1

Ela faz com que o Dnsmasq responda apenas a requisies da sua prpria mquina, ignorando requisies extensas, proveniente de outros micros da rede ou da internet. Mantenha o arquivo "/etc/resolv.conf" configurado como vimos a pouco, contendo a linha "nameserver 127.0.0.1", seguida pelos endereos DNS do provedor. Tente acessar um site qualquer. Voc perceber que o primeiro acesso continuar demorando o tempo normal, mas a partir do segundo o endereo estar no cache do Dnsmasq e a resoluo ser instantnea. Se o seu micro usa DHCP para obter a configurao da rede, o arquivo "/etc/resolv.conf" ser modificado a cada acesso, voltando configurao original, fornecida pelo servidor. Ao invs de ter que modificar o arquivo novamente, a cada acesso, adicione a linha abaixo no comeo (comeo, no final) do arquivo "/etc/dhcp3/dhclient.conf" (onde vai a configurao do cliente DHCP):

prepend domain-name-servers 127.0.0.1;

Esta linha faz com que ele sempre adicione a linha "nameserver 127.0.0.1" no incio do arquivo "/etc/resolv.conf", substituindo a edio manual. Uma ltima dica que os dois endereos que usei no exemplo "208.67.222.222" e "208.67.220.220", so do http://opendns.com, um servidor DNS pblico, que voc pode usar no lugar dos endereos DNS do provedor.