====== DNS y DHCP con dnsmasq ======
A los efectos de este tutorial, asumiremos que se utiliza una versión reciente de Debian.
===== ¿Que es dnsmasq? ======
Dnsmasq es un transportador DNS y servidor DHCP ligero. Está diseñado para redes pequeñas que pueden utilizar NAT y se conectan a internet via acceso telefónico, cable o una conexión ADSL, pero puede ser adecuado para cualquier red de hasta unos 1000 clientes, donde sea importante el bajo consumo de recursos y la facilidad de configuración. Además, ofrece soporte para BOOTP/TFTP/PXE, por lo que puede ser una buena opción para un pequeño laboratorio de clientes ligeros.
===== Instalación =====
Dnsmasq está incluido en el repositorio, de manera que para instalarlo basta con ejecutar los comandos habituales:
sudo aptitude update
sudo aptitude install dnsmasq
===== Configuración =====
Dnsmasq ofrece una cantidad considerable de opciones, pero en este tutorial no le abrumaremos con todo esto, pues el archivo de configuración (''/etc/dnsmasq.conf'') viene con muchos ejemplos de uso, y también puede consultar el manual para más información acerca de los diversos parámetros con los que puede ejecutarse.
Nos concentraremos entonces en hacer una instalación funcional, digamos para una red de unas 10 computadoras, donde dos de ellas deben tener siempre la misma dirección IP. Para esto básicamente tendremos que editar el archivo de configuración de dnsmasq:
sudo editor /etc/dnsmasq.conf
==== Interfaces ====
Dnsmasq permite seleccionar por qué interfaz de red debe o no "escuchar". En el archivo de configuración, buscamos la línea que dice ''#interface='' y después de quitarle la marca de comentario (#), podremos establecer el valor deseado, por ejemplo:
interface=eth0
==== DNS sencillo ====
Dnsmasq normalmente se encarga de consultar a los servidores DNS padres y de entregar esta información al resto de los clientes de la red, pero además puede buscar los nombres de las máquinas en el archivo ''/etc/hosts'' de la máquina donde se instale el servicio, lo cual constituye una manera simple de establecer los nombres de máquinas importantes como servidores, sin tener que mantener un ''/etc/hosts'' en cada máquina o complicarse con la instalación y configuración de ''bind''.
En nuestro caso, llenaremos la información de las dos computadoras que tendrán IPs estáticas, para lo cual debemos editar el archivo ''hosts'':
sudo editor /etc/hosts
Lo podremos dejar aproximadamente así:
127.0.0.1 localhost
192.168.0.2 maquina1.midominio.cu maquina1
192.168.0.3 maquina2.midominio.cu maquina2
Un detalle a tener en cuenta es que por defecto, la propia PC donde está instalado ''dnsmasq'' no utiliza dicho servicio. Si deseamos que lo haga, debemos colocar en el archivo ''/etc/resolv.conf'' solo la dirección de la PC local, por ejemplo:
domain midominio.cu
search midominio.cu
nameserver 127.0.0.1
Posteriormente habría que agregar los servidores DNS padres en el propio archivo de configuración de ''dnsmasq'':
sudo editor /etc/dnsmasq.conf
Buscamos la línea que dice ''#server=/localnet/192.168.0.1'', le quitamos la marca de comentario si deseamos, y a continuación podemos colocar nuestros servidores DNS padres; si usamos a Citmatel como ejemplo, las líneas quedarían así:
server=/localnet/192.168.0.1
server=169.158.128.136
server=169.158.128.88
server=169.158.128.156
==== Servicio DHCP ====
Por defecto, el servicio DHCP está deshabilitado. Para habilitarlo existen diferentes opciones bien ejemplificadas en el archivo de configuración.
En nuestro caso otorgaremos direcciones IP estáticas con vigencia ilimitada a dos máquinas según la dirección MAC de su tarjeta de red y el nombre, respectivamente, y el resto las configuraremos como IP dinámicas, con un plazo de vigencia de 36 horas.
Editamos el archivo de configuración, y buscamos la línea que dice ''#dhcp-range=192.168.0.50,192.168.0.150,12h'' y simplemente la descomentamos y modificamos para que quede así:
dhcp-range=192.168.0.50,192.168.0.150,36h
Esto nos reservará 100 direcciones IP (entre la 50 y la 150) que serán las utilizadas dinámicamente por los clientes.
Ahora, configuremos las IPs estáticas. Para esto editamos el archivo de configuración, buscamos la línea que dice ''#dhcp-host=11:22:33:44:55:66,192.168.0.60'' y ponemos lo siguiente:
dhcp-host=11:22:33:44:55:66,192.168.0.2,infinite
Con esto se asignará la dirección IP 192.168.0.2 a la computadora cuya tarjeta de red tiene la dirección MAC 11:22:33:44:55:66 ((Evidentemente, la dirección MAC debe ser la real de la tarjeta, que se puede averiguar fácilmente con el comando ''ifconfig -a'' desde Linux, o ''ipconfig /all'' desde Windows.))
Luego buscamos la línea que dice ''#dhcp-host=bert,192.168.0.70,infinite'' y solo le quitamos el comentario y cambiamos el nombre de la computadora y su IP:
dhcp-host=maquina2,192.168.0.3,infinite
Con esto se asignará la dirección IP 192.168.0.3 a la computadora que tiene el nombre maquina2.
===== Efectuar los cambios =====
Finalmente, solo tendremos que reiniciar el servicio dnsmasq:
sudo service dnsmasq restart
Es todo, ya nuestro DHCP debe estar funcionando. ¿Sencillo, verdad?
===== Atribuciones =====
* **Autor:** Hugo Florentino