Dnsmasq - Um servidor DHCP/DNS para pequenas e médias redes

Em algumas situações o uso dos servidores DNS e DHCP "tradicionais" (ISC DHCP Server e Bind, respectivamente) pode não ser o ideal, seja por falta de recursos (memória e processamento), espaço em disco ou até mesmo pela relativa complexidade de configuração. Em situações como essas, eu costumo utilizar o dnsmasq.

O dnsmasq é um servidor DHCP com um forwarder DNS integrado, ou seja, ele apenas encaminha as consultas DNS para outro servidor, e efetua um cache do resultado para acelerar futuras consultas. Embora essa característica não vá ser abordada aqui, vale ressaltar que o dnsmasq também suporta o protocolo TFTP, podendo atuar por exemplo como servidor TFTP para redes LTSP ou para a atualização e boot de equipamentos que suportem esse protocolo.


Características Principais:
  • Servidor DHCP que opera no modo dinâmico e também no modo estático (IP "amarrado" a um endereço MAC)
  • O servidor DNS faz a leitura do arquivo /etc/hosts da máquina. Caso você utilize essa feature na sua rede, basta manter o arquivo do servidor (não é necessário criar e manter um arquivo para cada máquina da rede).
  • Faz o registro das máquinas do DHCP no DNS automaticamente. Com isso, quando você executa um ping no hostname de uma máquina, recebe de volta seu endereço IP. Quando se utiliza a dupla ISC + Bind isso precisa ser configurado à parte.
  • O servidor DNS faz cache das resoluções de nome, permitindo um aumento de performance, além de diminuir a carga nos servidores DNS externos.
  • Os servidores externos a serem utilizados são lidos à partir do /etc/resolv.conf ou outro arquivo à sua escolha.
  • É possível a criação de registros MX e SRV (se você não sabe o que são esses registros, então não se preocupe, pois você não precisa deles ...).
  • Suporta o protocolo IPv6.
  • Suporta o protocolo TFTP, podendo ser utilizado para efetuar boot via rede em equipamentos diskless, como thinclients.
Instalação:
A instalação pode ser feita através do código fonte (disponível no site do dnsmasq ), através de pacotes RPM (também disponíveis no site ). Em sistemas Debian (e provavelmente em seus derivados) basta utilizar o APT:
aptitude install dnsmasq
Que irá instalar o pacote junto com todas as suas dependências.

Configuração:
Após a instalação, e com o serviço ativo, vamos à configuração. Surpresa !!! Inicialmente, não é necessária nenhuma configuração (supondo-se que as configurações de rede da sua máquina - incluindo a parte de servidores DNS - esteja correta). No entanto, existem algumas opções que são interessantes, pois permitem melhorar a performance e a segurança da instalação. Vamos à elas então:
  • domain-needed: não encaminha requisições DNS que não contenham um domínio. Essas requisições normalmente são referentes à rede local e devem ser tratadas pelo servidor de DNS local.
  • bogus-priv: não encaminha requisições de endereços não-roteáveis.
  • filterwin2k: filtra algumas requisições inúteis geradas por máquinas com Windows 2000/XP. Obs: não ative essa opção caso você utilize Kerberos, SIP, XMMP or Google-talk.
  • resolv-file=: permite indicar um arquivo de onde o dnsmasq vai ler os endereços dos servidores DNS a serem utilizados. Se essa opção não for utilizada, os endereços são obtidos através do /etc/resolv.conf
  • local=: permite definir qual o seu domínio local. Consultas a esse domínio serão respondidas utilizando-se o arquivo de hosts (/etc/hosts) e o DHCP.
  • address=: permite forçar um IP para determinado destino. Por exemplo, a linha "address=/orkut.com/127.0.0.1" impede a navegação no orkut, pois aponta o domínio http://orkut.com para 127.0.0.1 (localhost).
Estas são apenas algumas opções básicas. Para uma lista mais completa, verifique a documentação do projeto em http://thekelleys.org.uk/dnsmasq/docs. Lá você confere o manual e um arquivo de configuração de exemplo.

Nenhum comentário: