Configurar servidor VPS desde cero IV: servidor DNS

Un servidor dns es una parte fundamental de nuestro vps. Permite configurar nuestros propios dominios, subdominios o servidores de correo para que apunten a las direcciones IP que deseemos.

Índice
  1. ¿Qué es un servidor dns?
  2. Instalación del servidor dns
  3. Configuración del servidor dns bind
    1. Resolución directa del dominio
    2. Resolución inversa
  4. Como comprobar si el dominio esta bien configurado
  5. Índice de "Configurar servidor VPS"

¿Qué es un servidor dns?

Un servidor DNS se encarga de traducir entre nombres de dominios e ips y viceversa. Permite que los usuarios utilicemos nombres de dominios (por ejemplo www.fernandezsansalvador.es) en vez de su dirección ip, que es bastante mas difícil de recordar.

Instalación del servidor dns

Lo primero es instalar el servidor dns de nombre Bind. Desde una ventana del terminal, tecleamos:

apt-get install bind9
Instalando Servidor DNS Bind
Instalando Servidor DNS Bind

Una vez instalado el servidor dns, podremos pasar a configurarlo según las necesidades de nuestro vps.

Configuración del servidor dns bind

Para cada dominio, debemos realizar dos tipos de configuración. Una para la resolución directa, que es la traducción de nombre de dominio a dirección IP; y la inversa, que traduce de direcciones IP a nombre de dominio.

A cada dominio le asignaremos dos ficheros de configuración, uno para la resolución de dominio a ip, y otro para la resolución inversa, de ip a nombre de dominio.

Resolución directa del dominio

Los ficheros de configuración se encuentran en /etc/bind. Lo primero que debemos de crear es una entrada por el dominio que queremos configurar.

Editamos el fichero /etc/named.conf.local para añadir la entrada correspondiente al nuevo dominio:

nano /etc/named.conf.local

Y añadimos el siguiente bloque:

zone "midominio.es" {
        type master;
        allow-transfer {none;};
        file "/etc/bind/midominio.es";
};

Y cambiaremos el texto en negrita por el correspondiente al dominio que queremos configurar. En zone, debemos indicar el nombre del dominio y en file la ruta del fichero de configuración que crearemos a continuación.

Ahora debemos crear el fichero de configuración en la ruta especificada en el parámetro file:

nano /etc/bin/midominio.es

Y copiamos la siguiente configuración de nuestro nuevo dominio en el fichero:

$TTL        3600
@       IN      SOA     ns1.mivps.es. root.mivps.es. (
                        2019050501       ; serial
                        7200             ; refresh
                        540              ; retry
                        604800           ; expire
                        3600 )           ; minimum
;

midominio.es.    3600      A        mivps.es.
www              3600      A        mivps.es.
mail             3600      MX  10   mail.mivps.es.
ns1              3600      NS       ns1.mivps.es.

Un detalle importante, cada vez que escribamos un dominio, este debe llevar obligatoriamente un punto al final. Por ejemplo, escribiremos "midominio.es." (con el punto al final) y no "midominio.es" (sin el punto).

El valor root.mivps.es es la dirección de correo electrónico del administrador del servidor (en este caso [email protected]), sustituyendo la @ por un punto.

Vamos a explicar un poco los datos de la configuración del dominio que podemos modificar a nuestro gusto:

ParametroFunciónEjemplo
TTLIndica el periodo de tiempo que ha de transcurrir antes de comprobar cambios en la configuración del dominio.3600
serialEs un numero de formato fecha yyyymmddXX, donde:
yyyy es el año mm el mes
dd el día en que se crea o modifica el dominio
XX son los dos últimos dígitos indican el numero de modificación diaria del registro del dominio
2019050501
refreshSegundos que un servidor de nombre secundario debe esperar para comprobar de nuevo los valores de un registro.7200
retrySegundos que un servidor de nombre secundario debe esperar después de un intento fallido de recuperación de datos del servidor primario.540
expireSegundos máximo que el servidor de nombre secundario retendrá los valores antes de expirarlos.604800
minimumSegundos que los registros se mantienen activos en los servidores NS caché antes de volver a preguntar su valor real3600

Es importante que cada vez que modifiquemos el fichero de configuración del dominio, deberemos modificar el valor del parámetro serial, de esta manera al hacer un rndc reload no tendremos problemas con la propagación de los cambios.

En la parte inferior, se especifica los tipos de registros del dominio. Hay varios tipos de registros que podemos definir, dependiendo de nuestras necesidades:

Tipo de registroFuncion
AAsigna un nombre de un dominio a una dirección IP.
CNAMEAsigna un alias a un nombre de dominio auténtico o canónico.
MXRegistro que dirige el correo electrónico de un dominio a los servidores que alojan las cuentas de usuario del dominio
NSRegistro que determinan los servidores que comunicarán la información del DNS de un dominio
TXTRegistro que proporciona información de texto a fuentes externas a tu dominio y que se puede utilizar con distintos fines

Guardamos el fichero y una vez creado, recargamos la configuración de bind tecleando:

rndc reload

Después de configurar el dominio y recargar el servidor dns, debemos comprobar si esta realizando la resolución de nombres correctamente.

Resolución inversa

Ahora deberemos configurar la resolución inversa del dominio.

Editamos de nuevo el fichero de configuración /etc/named.conf.local

nano /etc/named.conf.local

Y añadimos el siguiente código:

zone    "126.20.198.in-addr.arpa" {
        type master;
        file "/etc/bind/db.198";
};

Deberemos modificar los datos en negrita. En el código anterior, es un ejemplo en caso de que nuestra ip sea, por ejemplo, 198.20.126.203

A continuación, creamos el fichero /etc/bind/db.198:

nano /etc/bind/db.198

Y añadimos el contenido:

$TTL    3600
@       IN      SOA     ns1.mivps.es. root.mivps.es. (
                        2019050501      ; serial
                        7200            ; refresh
                        540             ; retry
                        60480           ; expire
                        3600 )          ; minimum
; 

203             PTR     midominio.es.
203             PTR     www.midominio.es.
203             PTR     ns1.midominio.es.
203             PTR     mail.midominio.es.

Y actualizamos la configuración haciendo un:

rndc reload

Como comprobar si el dominio esta bien configurado

Como los cambios en la configuración del dominio puede tardas hasta 48 horas en propagarse por el resto de servidores dns, lo interesante es poder probar de manera rápida y sencilla si es correcta.

Y afortunadamente, con un pequeña utilidad como dig, podemos comprobar rápidamente si esta bien configurado nuestro dominio.

Comenzamos instalando el paquete dnsutils, que es donde se encuentra el programa dig:

apt-get install dnsutils

Para comprobar si el dominio se esta resolviendo correctamente, podemos utilizar el parámetro @, que nos permite que se use nuestro servidor dns para resolver y comprobar si devuelve la ip que debe.

Por ejemplo si hemos configurado el dominio midominio.es para que apunte a la ip XXX.XXX.XXX.XXX

dig @127.0.0.1 midominio.es

Si el dominio esta correctamente configurado, nos mostrara algo similar a esto:

; <<>> DiG 9.9.5-9+deb8u17-Debian <<>> @127.0.0.1 midominio.es
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45449
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;midominio.es.		IN	A

;; ANSWER SECTION:
midominio.es.	3600	IN	A	198.20.126.203

;; AUTHORITY SECTION:
midominio.es.	3600	IN	NS	ns2.mivps.es.
midominio.es.	3600	IN	NS	ns1.mivps.es.

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed May 15 11:33:57 EDT 2019
;; MSG SIZE  rcvd: 105

Por ultimo, he encontrado este video en Youtube del canal CurseaMe, donde explica de manera similar como configurar el servidor dns bind.

Índice de "Configurar servidor VPS"

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)
  1. Nacho dice:

    Hola Manuel,

    gracias por tus palabras.

    Te comento:
    midominio.es - hace referencia al dominio que estamos configurando en el servidor bind.
    mivps.es - hace referencia al dominio asignado al vps.

    En mi caso al vps le tengo asignado un dominio para poder generar un par de registros NS (ns1.mivps.es y ns2.mivps.es). De esta forma cuando compro un nuevo dominio para una web, los incluyo en los servidores dns de ese dominio.

    De esta manera, se usara mi vps como servidor dns, pudiendo definir los registros que necesite (CNAME, A, MX, etc).

  2. Manuel dice:

    Buenas. Tu entrada es de las más claritas que he visto acerca de configurar un servidor dns con Bind, pero me despista una cosa. Hay referencias en los archivos a mivps.es y midominio.es.
    ¿Me podrías explicar un poco esto? ¿mivps.es puede ser el hostname del vps? Esto me lia un poco. Muchas gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir