Servicio DNS

Servicio DNS

Tutorial Ubuntu 16.04 Linux Servidor Redes

Instalación del servicio

Para poder utilizar el servicio, primero tenemos que instalarlo, para realizar esta tarea, utilizamos el siguiente comando.

sudo apt-get install bind9

Acciones de administración

Disponemos de una serie de comandos para ver el estado del servicio, iniciarlo, pararlo y reiniciarlo, respectívamente.

sudo service bind9 status
sudo service bind9 start
sudo service bind9 stop
sudo service bind9 restart

Administración de las zonas

Creación de una zona directa

Para crear una zona directa, primero tenemos que crear el archivo de la zona y después añadir la entrada al archivo que gestiona todos los dominios que controlamos.

Un ejemplo de un archivo ya configurado quedaría tal que así

sudo nano /etc/bind/db.sertxudeveloper.com
$TTL 1d
$ORIGIN sertxudeveloper.com.

@ IN SOA ns1.sertxudeveloper.com. admin.sertxudeveloper.com. (
20171120 8h 15m 4w 1d)

@ IN NS ns1
@ IN NS ns2

ns1 IN A 149.62.172.136
ns2 IN A 149.62.172.136

Vamos a explicar el ejemplo anterior para que quede claro que es cada valor

$TTL [tiempo de vida]
$ORIGIN [dominio].

@ IN SOA [server primario].[dominio]. [administrador].[dominio]. (
[serie] [refresco] [reintento] [expire] [tiempo de vida])

@ IN NS [subdominio]
@ IN NS [subdominio]

[subdominio] IN A [ip]
[subdominio] IN A [ip] 

El valor establecido con @ corresponde al valor de $ORIGIN, de esta forma no es necesario escribir el valor cada vez que queremos utilizarlo.

[tiempo de vida] Tiempo durante el cual se puede mantener en caché la configuración

[dominio] Dominio a configurar

[server primario] Subdominio del servidor primario

[administrador] Dirección de correo del administrador

[serie] Número de serie de la configuración

[refresco] Tiempo entre cada refresco del servidor secundario

[reintento] Tiempo de espera para volver a intentar un refresco fallido

[expire] Tiempo hasta que los datos ya no se consideren válidos desde el último refresco

[subdominio] Subdominio del servicio o servidor a añadir en la configuración, este valor puede ser tanto absoluto como relativo, por ejemplo, si queremos configurar el subdominio ns2, podemos poner tanto ns2 (relativo) como ns2.sertxudeveloper.com. (absoluto), en caso de poner la ruta absoluta, no podemos olvidarnos del punto . al final de éste.

[ip] Dirección IP del subdominio en concreto

Más Registros

Además de los registros utilizados existen más, como:

Nombre Canónico
www IN CNAME ns1.sertxudeveloper.com
[alias] IN CNAME [subdominio]

[alias] Asignar otro nombre alternativo al subdominio deseado

Correo Electrónico
@ IN MX 10 ns1
@ IN MX [preferencia] [subdominio]

[preferencia] Valor que establece el nivel de prioridad frente a otros servidores mail

 

Creación de una zona inversa

Para crear una zona inversa, primero tenemos que crear el archivo de la zona y después añadir la entrada al archivo que gestiona todos los dominios que controlamos.

Un ejemplo de un archivo ya configurado quedaría tal que así

sudo nano /etc/bind/db.172.62.149.in-addr.arpa
$TTL 1d
$ORIGIN 172.62.149.in-addr.arpa.

@ IN SOA ns1.sertxudeveloper.com. admin.sertxudeveloper.com. (
20171120 8h 15m 4w 1d)

@ IN NS ns1.sertxudeveloper.com.
@ IN NS ns2.sertxudeveloper.com.

136 IN PTR ns1.sertxudeveloper.com.
136 IN PTR ns2.sertxudeveloper.com.

Vamos a explicar el ejemplo anterior para que quede claro que es cada valor

$TTL [tiempo de vida]
$ORIGIN [ip inversa].

@ IN SOA [server primario].[dominio]. [administrador].[dominio]. (
[serie] [refresco] [reintento] [expire] [tiempo de vida])

@ IN NS [subdominio]
@ IN NS [subdominio]

[ip inversa] IN A [subdominio]
[ip inversa] IN A [subdominio]

El valor establecido con @ corresponde al valor de $ORIGIN, de esta forma no es necesario escribir el valor cada vez que queremos utilizarlo.

[tiempo de vida] Tiempo durante el cual se puede mantener en caché la configuración

[ip inversa] Los tres primeros dígitos de la ip del servidor, es decir, si tenemos la ip 149.62.172.136 en el servidor, vamos a tener que poner 149.62.172 como los tres primeros dígitos pero de forma inversa, quedaría tal que así 172.62.149.

[dominio] Dominio a configurar

[server primario] Subdominio del servidor primario

[administrador] Dirección de correo del administrador

[serie] Número de serie de la configuración

[refresco] Tiempo entre cada refresco del servidor secundario

[reintento] Tiempo de espera para volver a intentar un refresco fallido

[expire] Tiempo hasta que los datos ya no se consideren válidos desde el último refresco

[subdominio] Subdominio del servicio o servidor a añadir en la configuración, este valor ha de ser absoluto, por ejemplo, si queremos configurar el subdominio ns2, debemos ponerlo como como ns2.sertxudeveloper.com. (absoluto), no podemos olvidarnos del punto . al final de éste.

[ip inversa] Dirección IP del subdominio en concreto, podemos poner la ip completa de la siguiente forma 136.172.62.149.in-addr.arpa. (absoluta), o bien, omitimos el valor ya escrito en el $ORIGIN 136 (relativa), en este caso recordemos que no hay que poner el punto final en el formato relativo. Si no existe el $ORIGIN en el archivo, debemos escribirlo absoluta. En el registro $ORIGIN tenemos que escribirla en absoluta, pero omitiendo los octetos que no sean de red, en nuestro caso el cuarto que corresponde al 136.

Configurar un servidor maestro

Una vez configuradas las zonas, debemos ir al archivo /etc/bind/named.conf.local y añadir los registros de nuestras dos zonas creadas.

Vamos a poner un ejemplo de cómo quedaría una zona directa

sudo nano /etc/bind/named.conf.local
zone "sertxudeveloper.com" {
type master;
file "/etc/bind/db.sertxudeveloper.com";
};

Esta otra es una zona inversa

sudo nano /etc/bind/named.conf.local
zone "172.62.149.in-addr.arpa" {
type master;
file "/etc/bind/db.172.62.149";
};

Vamos a ver la estructura del registro de la zona directa

zone "[dominio]" {
type master;
file "/etc/bind/db.[dominio]";
};

Este es el registro de la zona indirecta

zone "[ip inversa]" {
type master;
file "/etc/bind/db.[ip]";
};

[dominio] Dominio a configurar

[ip inversa] Dirección IP del subdominio en concreto, podemos poner la ip omitiendo la parte que no corresponde a red, en nuestro caso la ip 149.62.172.136 quedaría de la siguiente forma 172.62.149.in-addr.arpa

Configurar dominio con varios servidores

Un dominio puede tener varios servidores asociados, de forma que si deja de funcionar el maestro, tendremos una copia en un servidor esclavo.

Servidor maestro

Para poder configurar un servidor esclavo, primero debemos ir al registro en el maestro añadir la línea allow-transfer, esto permitirá que el servidor maestro acepte las peticiones enviadas por el servidor secundario que permitamos.

zone "[dominio]" {
type master;
file "/etc/bind/db.[dominio]";
allow-transfer { [ip esclavo]; }
};

En la zona inversa también debemos añadir esa línea, queremos tener una copia tanto de la zona directa como de la inversa.

zone "[ip inversa]" {
type master;
file "/etc/bind/db.[ip]";
allow-transfer { [ip esclavo]; }
};

Servidor esclavos

zone "[dominio]" {
type slave;
file "/etc/bind/db.[dominio]";
masters { [ip maesto]; }
};
zone "[ip inversa]" { 
type slave;
file "/etc/bind/db.[ip]";
masters { [ip maesto]; }
};