lunes, 6 de octubre de 2008

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, sino tienes estas direcciones, fijate en tu ISP para telmex de mexico utiliza estas:
200.33.146.219
200.33.146.212
5. 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.
Editamos
$ sudo gedit /etc/dnsmasq.conf
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.1,192.168.0.100,12h
Así, las IPs que asignará el servidor irán desde la 192.168.0.1 hasta la 192.168.0.100; 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.
Tambien podemos asignar siempre la misma direccion a una PC, unicamente nesecitamos conocer su direccion mac, para equipos windows usamos el comando ipconfig /all, para linux usamos ifconfig -a. para ver las direcciones mac de nuestros clientes. Ahora editamos dnsmasq.conf y agregamos lo siguiente por ejemplo:
#Laptop de Primitivo
dhcp-host=00:11:09:0D:63:FE,192.168.0.10
donde 00:11:09:0D:63:FE es la mac de nuestra maquina y 192.168.0.10 es la direccion que queremos asignar

Las direcciones IP que va asignando las registra en el fichero /var/lib/misc/dnsmasq.leases.


Este articulo es un copy-paste de guia-ubuntu y con algunas modificaciones que yo realice para que funcionara segun mi configuración.

1 comentario:

Unknown dijo...

loco deja de estar copiando lo que otros pegan..Realizalo tu y pegalo con imagenes