sexta-feira, 4 de julho de 2014

DNS local com DNSmasq

Estava há anos querendo fazer isso: chamar meus computadores pelo nome na minha rede doméstica. Cheguei a queimar um wireless-router tentando fazer isso (não, o procedimento não causa nenhum dano, mas é que eu aproveitei o DD-WRT para aumentar a potência do sinal emitido pelas minhas antenas, e aí deu nisso). E quando a gente descobre que é um procedimento simples, acaba percebendo que só perdeu tempo.

Bem, vamos à disposição da minha rede.
Agora, tenho um roteador Multilaser que tem somente 2MB de FLASH ROM.
Obviamente, fiquei "com o cu na mão" para trocar o firmware dele, então, para fazer um teste, instalei o DNSmasq em outro computador (apt-get install dnsmasq, no Debian).

O DNSmasq é um servidor DNS (Domain Name Service) que não é tão poderoso quanto o bind9 e outros, mas serve muito bem para uma rede doméstica, ou pequenos escritórios.
Além de servidor DNS para LANs com mascaramento IP (NAT), ele também é um servidor DHCP, e TFTP (Trivial FTP, muito em máquinas diskless).

Quando se instala-o, é necessário fazer pequenos ajustes na segurança, caso a máquina em que vai ser instalada seja o roteador (ou que tenha acesso a redes mais amplas, como a Internet), ou habilitar o serviço DHCP. Tudo isso pode ser configurado no /etc/dnsmasq.conf

Lembrando que se o DNSmasq não for utilizado, podemos fazer um "DNS português" (peço desculpas aos entusiastas da Revolução dos Cravos, que são muito bem-vindos!), copiando o mesmo /etc/hosts para todos os computadores da rede, contendo o nome e endereço IP de todos eles.

Agindo como servidor DHCP também, o DNSmasq pode pegar os nomes dos hostnames e permitir que todos os computadores da rede consigam acessá-los pelos nomes.
Caso haja computadores e dispositivos com IPs estáticos, basta incluí-los no /etc/hosts do computador em que será instalado o dnsmasq (podendo ser o próprio roteador, se você tem melhor sorte do que eu) no seguinte formato:

#/etc/hosts
#IPs da máquina    Nomes das máquinas
192.168.1.17          URSS

Depois, é só reiniciar o dnsmasq. No caso do Debian, basta:
#invoke-rc.d dnsmasq restart

Depois, penso que há dois modos de configurar os clientes para usar o seu servidor DNS (que já vai fazer DNS caching usando os servidores DNS do provedor de acesso)

1) Configurar os clientes para só usar o seu servidor DNS, manualmente, um por um.

No Linux, isto é feito editando o arquivo /etc/resolv.conf, e colocando apenas essa linha:
nameserver XXX.YYY.ZZZ.DDD #, onde XXX.YYY.ZZZ.DDD é o número de IP do seu servidor DNS (o computador onde você instalou o DNSmasq).

2) Configurar o seu roteador e/ou servidor DHCP para enviar aos clientes o endereço IP do seu servidor DNS

Se o seu servidor DNS  e DHCP for o próprio roteador, basta colocar o IP dele e pronto no local apropriado do arquivo /etc/dnsmasq.conf, que está bem comentado (e eu vou colocar várias referências para fazer isso no final do artigo).
O meu roteador não tem o DNSmasq instalado (apenas o DHCP), mas utilizei essa solução mesmo assim, por simplicidade. O meu roteador, antes enviava para cada cliente os DNS primário e secundário oriundos do provedor. Agora, o DNS primário é o computador onde instalei o DNSmasq, e o secundário é o DNS oriundo do provedor (perdendo o DNS secundário).

Instalar um DNSmasq no próprio roteador wireless em vez de um PC externo permite reduzir o consumo de energia, por isso não me importei com a "gambiarra" que acabei de fazer (vou deixar o DNS server desligado, de vez em quando, e os outros computadores precisarão de um servidor DNS para acessar os computadores da Internet pelos seus nomes e domínios).

In a DNS bind? Get Out With dnsmasq

How to dnsmasq - Debian Wiki 

Dnsmasq For Easy LAN Name Services

How to Install and Configure dnsmasq

 Dnsmasq setup

Run a local DNS resolver with OpenWRT

 


Nenhum comentário:

Postar um comentário