TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES 4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP Dnsmasq es un paquete que incluye un servidor DNS y DHCP. El servidor DNS es un servidor muy sencillo que no contiene zonas de búsqueda (ni directa, ni inversa), sino que se trata de un servidor DNS caché que además funciona como servidor DNS para nuestra red local gracias a que lee el archivo /etc/hosts. Este archivo (/etc/hosts) como hemos visto en temas anteriores, es usado por el Sistema Operativo (sea cual sea) para guardar la correspondencia entre un nombre de dominio o nombre DNS (interno o de Internet, da igual) y direcciones IP. Antiguamente cuando no había servidores DNS que resolvieran nombres de dominio, el archivo hosts era el único encargado de hacerlo, pero dejó de usarse cuando Internet empezó a crecer y surgieron los servidores DNS. Aún así, a día de hoy, todos los Sistemas Operativos suelen venir configurados por defecto para resolver un nombre de dominio, primero usando este fichero. Y, en caso de que ahí no esté ese nombre, consultarán el servidor DNS cuya IP le hayamos configurado. Todos los Sistemas Operativos tienen este archivo, aunque en diferentes carpetas almacenado. Así, por ejemplo: Sistema Operativo Ruta Windows 95 / 98 / Me C:\Windows\hosts Windows NT / 2000 C:\WINNT\System32\drivers\etc\hosts Windows XP / 2003 / Vista / 7 C:\Windows\System32\drivers\etc\hosts Unix / Linux / BSD /etc/hosts 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. 79 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES 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. 4.2.1- Instalación del servidor DNS con Dnsmasq Para instalar la última versión de dnsmasq, podemos hacerlo con apt-get desde una consola de root: // Instalación del servidor dnsmasq # 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. 4.2.2- Configuración del servidor DNS con Dnsmasq 1º) Para que dnsmasq pueda ser un servidor caché DNS, es necesario modificar nuestro fichero /etc/resolv.conf de forma que ahí aparezca 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: 195.235.113.3, 62.37.228.20 (de Orange), etc. Por tanto, nuestro fichero tendrá algo parecido a: // Añadir en /etc/resolv.conf del servidor nameserver 127.0.0.1 nameserver 62.37.228.20 nameserver 195.235.113.3 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.google.es Si el DNS funciona, nos dirá cual es la IP del servidor de Google. 80 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES En este punto, ya tendremos en nuestro servidor un servidor DNS caché funcionando. 2º) 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. Por ejemplo: //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.2.202 www.XXmicentro.com proxy www 192.168.2.238 impresora 192.168.2.254 router 192.168.2.203 asi1pc3 aula1pc3 192.168.2.204 asi1pc4 aula1pc4 192.168.2.205 asi1pc5 aula1pc5 192.168.2.206 asi1pc6 aula1pc6 192.168.2.207 asi1pc7 aula1pc7 3º) 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. Cada vez que modifiquemos el archivo /etc/hosts del servidor, deberemos ejecutar "/etc/init.d/dnsmasq restart" para reiniciar el servicio dnsmasq y recargar 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. 4.2.3- Prueba del servidor DNS con Dnsmasq Se puede probar desde el propio servidor con los comandos dig, ping, host o nslookup. Pero vamos a explicar cómo hacerlo desde un cliente. 81 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES El resto de PCs de la red, serán los clientes. Estos clientes pueden ser equipos con Windows XP, con Ubuntu, …Explicaremos cómo configurar un cliente Windows XP y otro Ubuntu. a) Configuración de un cliente XP: Debemos incorporar nuestro cliente XP al dominio de nuestro servidor Ubuntu. Para ello, en el cliente XP pulsamos Botón Dcho sobre MI PC y elegimos PROPIEDADES: Pulsamos CAMBIAR y en la casilla “Dominio” que nos aparece ponemos nuestro dominio: XXmicentro.com (donde XX es el nº de dominio de cada uno de vosotros: 01, 02,…) y ACEPTAR. Configuramos el DNS en el cliente: Para ello, debemos de configurar en la propiedades del TCP/IP, el DNS anotando ahí la IP de nuestro servidor Ubuntu. 82 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES Desde nuestro cliente probamos si el servidor DNS resuelve nombre externos (de Internet). Vamos al Internet Explorer y ponemos: www.google.es. Si nos aparece la página de Google es que todo va bien. Otra forma de probar si funciona es usar: ping o nslookup desde la consola MS-DOS: Probamos resolución directa: ping www.google.es O también: nslookup www.google.es Probamos resolución inversa: ping ip_de_Internet donde ip_de_Internet es la IP de cualquier máquina de Internet como las de google.es,… O también: nslookup ip_de_Internet Ahora, desde nuestro cliente probamos si el servidor DNS resuelve nombre internos: podemos usar: ping o nslookup desde la consola MS-DOS. Probamos resolución directa: ping nombreservidor donde nombreservidor es el nombre de vuestra máquina Ubuntu O también: nslookup nombreservidor Probamos resolución inversa: ping ip_del_servidor donde ip_del_servidor es la IP de vuestra máquina Ubuntu O también: nslookup ip_del_servidor 83 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES b) Configuración de un cliente Ubuntu: Configuramos el DNS en el cliente: debemos indicarle la IP del servidor DNS en el fichero /etc/resolv.conf de este cliente: Por ejemplo si la IP de nuestro servidor DNS dnsmasq es 192.168.2.202, pondremos en cada /etc/resolv.conf (el de cada cliente): // Editar /etc/resolv.conf del resto de PCs de la red nameserver 192.168.2.202 Ahora desde nuestro cliente Ubuntu probamos si el servidor DNS resuelve nombre externos (de Internet). Vamos al Navegador de Internet y ponemos: www.google.es. Si nos aparece la página de Google es que todo va bien. Otra forma de probar si funciona es usar: dig , host, ping o nslookup desde la consola MS-DOS: Probamos resolución directa: dig www.google.es O también: nslookup www.google.es O también: host www.google.es Probamos resolución inversa: ping ip_de_Internet donde ip_de_Internet es la IP de cualquier máquina de Internet como las de google.es,… O también: nslookup ip_de_Internet 84 TEMA 6 INSTALACIÓN DE SERVICIOS EN REDES LOCALES Ahora, desde nuestro cliente probamos si el servidor DNS resuelve nombre internos. Para ellos podemos usar: ping o dig o host o nslookup desde la consola de comandos. Probamos resolución directa: ping nombreservidor donde nombreservidor es el nombre de vuestra máquina Ubuntu. Sirve cualquier nombre de cualquier equipo de ese dominio. O también: nslookup nombreservidor O también: dig nombreservidor O también: host nombreservidor Probamos resolución inversa: ping ip_del_servidor donde ip_del_servidor es la IP de vuestra máquina Ubuntu. Sirve la IP de cualquier equipo del dominio. O también: nslookup ip_del_servidor 85