Cuando un usuario cualquiera, uno de nuestros clientes o nosotros mismos queramos acceder al servidor lo haremos a través de un nombre de dominio que escribiremos en el navegador de internet como cualquier otra página web.
Al pulsar la tecla intro el navegador accederá a la página, pero para ello antes ha tenido que conseguir la IP publica que le corresponde a ese dominio, ya que los nombres de dominio como www.ubuntu.com, es.wikipedia.org, etc. nos van a nosotros muy bien para aprenderlos de memoria, sin embargo los ordenadores no se comunican a través de nombres de dominio, si no a través de direcciones IP. Es por ello que al pulsar la tecla intro, el navegador consulta que IP le corresponde a ese dominio, para ello usa los servidores DNS que tengamos configurados en el equipo o en el servidor DHCP del router que nos asignara los parámetros IP si nuestro equipo cliente así los pidiese.
Sin embargo se nos presenta un problema, y es que nuestro dominio no existe ni vamos a comprarlo para una practica pues no sale a cuenta. Y como no existe, cuando el navegador utilice los servidores DNS estos no sabrán darle una respuesta y no nos cargara ninguna página o nos saltara un error advirtiéndonos de ello.
Para solventarlo deberemos de poner la IP publica del router, al cual esta conectado nuestro servidor y el cual ademas tiene perfectamente configurado los puertos necesarios, en la configuración de nuestro ordenador, de forma que así consigamos que, al pulsar intro, el navegador pueda consular al servidor DNS de nuestro propio servidor y este le responda sobre el dominio preguntado, como www.giltesa.smr, pepe.giltesa.smr, maria.giltesa.smr, etc.
Y para ello, necesitamos contar con un servidor DNS así que vamos a pasar a instalarlo y configurarlo:
Instalar:
1 2 |
# apt-get update # apt-get install bind9 |
Directorio de configuración:
1 |
cd /etc/bind |
Lo primero es añadir nuestra nueva zona o dominio del cual nosotros somos autoridad, para ello editamos el siguiente fichero y añadimos las siguientes lineas al final del todo:
1 2 3 4 5 6 |
# nano named.conf.default-zones zone "giltesa.smr" { type master; file "/etc/bind/db.giltesa"; }; |
Como vemos, en el la linea «zone» donde pone «giltesa.smr» corresponde al dominio del que nos vamos a hacer cargo, un dominio inventado, y al final de las lineas, donde pone «file» deberemos de poner la ruta del fichero que contendrá la información (base de datos) y que crearemos y configuraremos a continuación:
Para no empezar desde cero podemos copiar el fichero db.empty para usarlo como plantilla:
1 |
# cp db.empty db.giltesa |
Después lo editamos según nuestras necesidades, en nuestro caso:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# nano db.giltesa $TTL 86400 @ IN SOA dns. root.dns. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 86400 ; Negative Cache TTL ) ; @ IN NS dns. dns IN A 82.198.42.31 www IN CNAME dns maria IN CNAME dns pepe IN CNAME dns |
Si no me confundo, la «@» hace referencia al fichero que configuramos antes, después el registro «SOA» contiene información sobre el DNS, «dns.» indica el nombre de host del servidor.
En «@ IN NS dns.» se especifica que el NameServer de esa zona es «dns.» y justo en la linea inferior se especifica la IP de ese servidor de nombres, esa IP tiene que ser la IP publica que tengamos, si la IP que proporciona nuestro ISP es dinámica tendremos que editarla cada vez que nos la cambien.
Por ultimo, las tres lineas siguientes indican que el subdominio «www», «maria», «pepe» son los Alias de «dns» y este a su vez apunta a nuestra IP. De forma que si consultamos el nombre del dominio «www.giltesa.smr», «maria.giltesa.smr» y «pepe.giltesa.smr» todos apuntaran a la misma IP. Después el servidor web ya se encargara de mostrar el directorio correcto según el nombre de dominio con el que hayamos llegado.
También, como habremos imaginado, tendremos que crear un Alias nuevo por cada subdominio que queramos agregar.
Ahora vamos a agregar al servidor nuestra IP como servidor DNS para que podamos hacer pruebas desde el navegador. Para ello editamos este fichero y agregamos la siguiente linea:
1 2 |
# nano /etc/resolv.conf nameserver 127.0.0.1 |
Para asegurarnos que toda la configuraciones son correctas podemos hacer varias pruebas. Con la siguiente nos aseguramos que la sintaxis de los ficheros están bien, ojo, podemos haber configurado mal el servidor y la sintaxis estar bien, en ese caso al ejecutar el siguiente comando no nos daría error pero el servidor DNS no iría: (si no da ningún mensaje esta todo correcto)
1 |
# /usr/sbin/named-checkconf |
Con el siguiente comando comprobamos que el fichero de zona este bien y que el fichero de base de datos sea accesible. (comando | zona | directorio base de datos)
1 |
# /usr/sbin/named-checkzone giltesa.smr /etc/bind/db.giltesa |
Ahora con todo configurado y chequeado podemos reiniciar el servicio:
1 |
# /etc/init.d/bind9 restart |
Y por ultimo podemos usar el comando «dig» para hacer consultas al propio DNS y que este nos responda:
1 2 |
dig @localhost www.giltesa.smr dig @localhost pepe.giltesa.smr |