El paquete dnsmasq permite poner en marcha un servidor DNS y un servidor DHCP de una forma muy sencilla.
Simplemente instalando y arrancando el servicio dnsmasq, sin realizar ningún tipo de configuración adicional, nuestro PC se
convertirá en un servidor caché DNS y además, resolverá los nombres que tengamos configurados en el archivo /etc/hosts
de nuestro servidor. La resolución funcionará tanto en sentido directo como en sentido inverso, es decir, resolverá la IP dado
un nombre de PC y el nombre del PC dada la IP.
Adicionalmente, dnsmasq dispone de servidor DHCP y permite resolver los nombres de los PCs a los que les ha asignado
dirección IP dinámica.
Instalación del servidor dnsmasq
Para instalar la última versión de dnsmasq, podemos hacerlo con apt-get desde una consola de root:
// Instalación del servidor dnsmasq
sudo apt-get install dnsmasq
De esta forma instalaríamos los programas necesarios para disponer de un sencillo servidor DNS. Tan solo será necesario
configurarlo y ponerlo en marcha.
Arranque y parada del servidor dnsmasq
El servicio dnsmasq, al igual que todos los servicios, dispone de scripts de arranque y parada en la carpeta /etc/init.d.
Debemos ejecutarlos desde una consola de root.
// Arrancar o reiniciar el servidor dnsmasq
sudo /etc/init.d/dnsmasq restart
// Parar el servidor dnsmasq
sudo /etc/init.d/dnsmasq stop
Para un arranque automático del servicio al iniciar el servidor, debemos crear los enlaces simbólicos correspondientes tal y
como se indica en el apartado Trucos > Arranque automático de servicios al inicar el sistema.
Configuración básica de dnsmasq
Para que dnsmasq pueda ser un servidor caché DNS, es necesario que nuestro servidor tenga en el archivo de
/etc/resolv.conf configurado al menos un servidor DNS externo. Normalmente los servidores DNS externos nos los
proporciona el operador de telecomunicaciones que nos da servicio de Internet. Por ejemplo, Telefónica tiene unos DNSs,
Orange tiene otros, ONO tiene otros, Tele2 otros, etc… Aunque podemos utilizar los de cualquier operador, lo mejor es
configurar los del nuestro, porque responderá más rápido.
Servidores DNS de Telefónica:
DNS primario 80.58.0.33
DNS alternativo (por si falla el primario) 80.58.32.97
Servidores DNS de Orange:
DNS primario 62.36.225.150
DNS alternativo 62.37.228.20
Servidores DNS de Google:
DNS primario 8.8.8.8
DNS alternativo 8.8.4.4
Para que nuestro servidor utilice los DNS externos, debemos añadirlos en /etc/resolv.conf. En el caso de Telefónica,
deberemos añadir en /etc/resolv.conf las siguientes líneas:
// Ejemplo: Utilización de los DNS externos de Telefónica
// Añadir en /etc/resolv.conf del servidor
nameserver 80.58.0.33
nameserver 80.58.32.97
Una vez introducidos los DNS externos en /etc/resolv.conf, debemos comprobar si dichos DNS externos funcionan
correctamente y responden a las peticiones. Para ello haremos una consulta al DNS mediante el comando nslookup.
También podríamos utilizar el comando host o el comando dig:
// Probar DNS externo
// Ejecutar en una consola del servidor
nslookup www.unican.es
Si el DNS funciona, nos dirá cual es la IP del servidor de la Universidad de Cantabria, www.unican.es.
En este punto, ya tendremos en nuestro servidor un servidor DNS caché funcionando. Para probar su funcionamiento,
configuraremos el archivo /etc/resolv.conf del resto de los PCs de nuestra red pero en lugar de indicar los DNS de Telefónica,
indicaremos el nuestro. Si nuestro servidor tiene la IP 192.168.1.239, lo añadiremos en el archivo /etc/resolv.conf de cada
PC:
// Añadir en /etc/resolv.conf del PC cliente
nameserver 192.168.1.239
Al igual que hemos hecho anteriormente, podemos comprobar si nuestro servidor DNS funciona correctamente, haciendo una
consulta mediante el comando nslookup:
// Probar nuestro servidor DNS
//Ir al PC cliente, abrir una consola de comandos y ejecutar:
nslookup www.unican.es
Si nuestro servidor DNS funciona, nos responderá con la IP del servidor de la Universidad de Cantabria, pero si nuestro
servidor DNS falla, los clientes tendrán problemas de conexión ya que no podrán resolver consultas DNS, por eso es mejor
añadir un segundo DNS externo, por ejemplo el de google 8.8.8.8:
// Añadir en /etc/resolv.conf del PC cliente
nameserver 192.168.1.239
nameserver 8.8.8.8
Ahora que ya tenemos el servidor DNS caché funcionando, iremos más allá. El siguiente paso será editar el archivo
/etc/hosts de nuestro servidor, para que nuestro DNS resuelva también los nombres y las IPs de nuestra red. Si los PCs de
nuestra red disponen de IP fija y queremos que dnsmasq resuelva sus nombres e IPs, tan solo tenemos que añadir los
nombres y las IPs en el archivo hosts del servidor y sería como disponer de un DNS maestro para nuestra red:
//Añadir en /etc/hosts del servidor las IPs y los nombres de nuestros PCs
//Se pueden añadir varios nombres en la misma línea. Separar con un tabulador
192.168.1.239 www.ieslapaloma.com proxy www
192.168.1.238 impresora
192.168.1.1 router
Si desde un PC de nuestra red hacemos una consulta al DNS preguntando por otro PC de nuestra red, dnsmasq resolverá
en el servidor y devolverá la IP configurada en el archivo hosts del servidor:
// Probar nuestro servidor DNS con nombres de nuestra red
// Ejecutar en una consola del PC cliente
nslookup aula1pc1
Cada vez que modifiquemos el archivo /etc/hosts del servidor, deberemos ejecutar sudo /etc/init.d/dnsmasq restart para
reiniciar el servicio dnsmasq y recargue la información contenida en dicho archivo.
De esta manera, tan solo editando el archivo /etc/hosts del servidor, dispondremos de un sencillo servidor DNS para nuestra
red lo que nos permitirá referirnos a nuestros PCs utilizando sus nombres que son mucho más fáciles de recordar que las
direcciones IP.
Servidor