Dnsmasq, servidor DNS y DHCP
Dnsmasq es un servidor (DNS, DHCP) muy ligero que tiene un efecto colateral; además de funcionar como servidor DNS para tu red local (gracias a que lee el archivo /etc/hosts) y poder resolver los nombres asignados a tus equipos, también hace de servidor DNS caché, es decir almacena las IPs consultadas para no tener que repetir la consulta cuando vuelven a pedirse.
El resultado es que el acceso a las páginas de Internet es más rápido. Como sabemos, antes de visualizar su contenido, debe resolverse el nombre del equipo al que le enviamos la petición a través de una compleja red de servidores, que se inicia en el (o los) que hemos definido en /etc/resolv.conf
Nuestro(s) servidor(es) suelen ser dos IPs de nuestro suministrador de acceso a Internet. Con dnsmasq conseguimos reducir el proceso de consulta.
Puedes confirmar la mejora en la velocidad con que se resuelven los nombres mediante el comando digg. Antes de instalar, configurar y activar dnsmasq ejecuta:
$ dig google.es
y anota el valor que aparece al final de la respuesta al lado de QUERY TIME.
Luego sigue los pasos para instalarlo:
1. Instalar dnsmasq
$ sudo apt-get install dnsmasq
Si la consola te dice que "no se ha podido encontrar el paquete dnsmasq" probablemente se deba a que no has activado el repositorio Universe.
2. Editar
$ sudo gedit /etc/dnsmasq.conf
y descomentar la siguiente línea
#listen-address=
luego modificarla para que quede como la siguiente
listen-address=127.0.0.1
3. Editar
$ sudo gedit /etc/dhcp3/dhclient.conf
y asegurarse de que el contenido del archivo sea exactamente el siguiente, especialmente en la línea “prepend domain-name-servers 127.0.0.1;” ya que debe de estar descomentada (sin el símbolo # al principio de la frase)
#supersede domain-name "fugue.com home.vix.com"; prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
4. Editar
$ sudo gedit /etc/resolv.conf
y poner como primer servidor el local, de forma que quede más o menos así:
search tuisp (mundo-R.com, telefonica, yahoo, etc...) (Esta linea NO la debeis tocar) nameserver 127.0.0.1 nameserver xxx.xxx.xxx.xxx nameserver xxx.xxx.xxx.xxx
Los xxx.xxx.xxx.xxx se refieren a unas IPs específicas para cada conexión, pero como no tienes que modificarlas no te preocupes ni las toques.
4. Arrancar de nuevo el demonio introduciendo la siguiente línea en una terminal:
$ sudo /etc/init.d/dnsmasq restart
Una vez concluida la instalación y configuración puedes continuar con el experimento de comprobar la mejora de velocidad, para ello repite el comando
$ dig google.es
cuando funcione el dnsmasq; el valor numérico de QUERY TIME tendría que ser casi 10 veces menor.
Servidor DHCP
Normalmente el servidor DHCP irá en el firewall, y sólo deberíamos atender las peticiones DHCP desde dentro de la red local. Si el interfaz de red conectado a la LAN es eth1, deberemos descomentar la línea:
#interface=
Y modificarla así:
interface=eth1
Ahora activaremos el servidor DHCP integrado descomentando la línea:
#dhcp-range=192.168.0.50,192.168.0.150,12h
Y modificándola para adaptarla al rando de IP que queramos servir:
dhcp-range=192.168.0.30,192.168.0.60,12h
Así, las IPs que asignará el servidor irán desde la 192.168.0.30 hasta la 192.168.0.60; estableciendo el tiempo de asignación de la IP a 12 horas, después de las cuales esa IP puede asignarse a otro equipo si no lo reclama antes.
Las direcciones IP que va asignando las registra en el fichero /var/lib/misc/dnsmasq.leases.
Vease también
Local DNS Cache for Faster Browsing (en inglés)