Usando um DNS local

A Internet como a conhecemos funciona em grande parte graças aos servidores DNS, que convertem nomes de domínio nos endereços IP correspondentes. Sem eles, a web seria muito menos amigável, já que você teria que manter longas listas com os endereços IP dos sites e servidores que precisa acessar. Sem o DNS, a web talvez nem mesmo tivesse se popularizado tão rápido.

Toda essa dependência traz um inconveniente, que é o fato de que você fica virtualmente desconectado quando os servidores DNS usados saem fora do ar. Obviamente, você ainda continua conectado e pode acessar qualquer servidor através do endereço IP, mas você por acaso sabe algum de cor?

Infelizmente os problemas relacionados aos servidores DNS das operadoras e provedores de acesso são bastante comuns. Muitas vezes mudam os endereços sem aviso, em outras o servidor DHCP (do provedor) é configurado incorretamente e fornece endereços errados quando você se conecta, sem falar nos casos em que os servidores simplesmente ficam inacessíveis, sem motivo aparente.

Diz o bom senso que os dois servidores DNS deveriam ser mantidos em redes separadas, para manter a redundância, mas o fato é que, em muitos provedores, é usado um único servidor, com um simples alias para a placa de rede, que “simula” a existência de um segundo servidor DNS. Dessa forma, temos uma única máquina, e que quando o servidor cai, você perde simultaneamente tanto o DNS primário quanto o secundário.

Para fugir dessa 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 distribuição. 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 não é necessário alterar a configuração padrão, já que queremos apenas acessar a web e não configurá-lo para responder por nenhum domínio registrado; basta manter o serviço ativo.

É recomendável que você mantenha a porta 53 (tanto TCP quanto UDP) bloqueada no firewall, de forma que não consigam usar seu DNS de fora. Deixar o DNS disponível para o mundo não chega a ser uma brecha terrivelmente grave, mas existe a possibilidade de alguém mal intencionado utilizar seu servidor para enviar um grande número de requisições para outra máquina, como parte de um ataque DoS.

Finalizando, 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

Isso faz com que o sistema passe a usar seu servidor DNS local em vez dos endereços DNS da operadora ou provedor.

Uma segunda opção é usar o Dnsmasq, um servidor DNS minimalista, que simplesmente cria um cache dos endereços já acessados, evitando usar o DNS externo a cada acesso. Ele é uma opção em casos onde os servidores DNS externos são estáveis, mas a velocidade do acesso não é das melhores. Um DNS lento faz com que você perca vários segundos no “procurando pelo servidor” ao acessar cada site.

Instalar o Dnsmasq é igualmente simples, basta procurar pelo pacote no gerenciador da distribuição usada. Ao instalar via apt-get, use:

# apt-get install dnsmasq

A principal observação é que você não 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 vice-versa.

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 requisições da sua própria máquina, ignorando requisições externas, provenientes 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 endereços DNS do provedor), o que faz com que o sistema utilize o Dnsmasq como servidor preferencial.

Tente acessar um site qualquer. Você perceberá que o primeiro acesso continuará demorando o tempo normal; mas, a partir do segundo, o endereço estará no cache do Dnsmasq e a resolução será instantânea.

Se o seu micro usa DHCP para obter a configuração da rede, o arquivo “/etc/resolv.conf” será modificado a cada acesso, voltando à configuração original, fornecida pelo servidor. Em vez de ter que modificar o arquivo novamente, a cada acesso, adicione a linha abaixo no começo (começo, não final) do arquivo “/etc/dhcp3/dhclient.conf“, onde vai a configuração 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 início do arquivo “/etc/resolv.conf”, substituindo a edição manual.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X