En este post se muestra cómo se instala un Servidor DNS en un Linux Ubuntu. Las siglas del Servidor DNS significan Domain Name System. Este Servidor DNS es empleado para relacionar una dirección IP con un dominio en una relación bidireccional. Esto permite realizar cualquier consulta a un dispositivo externo a través de una red. Conoce cómo instalar y Configurar un Servidor DNS en un Ubuntu, aquí en este artículo.
Instalar y Configurar un Servidor DNS en Ubuntu
En el manejo de la configuración e infraestructura de Servidores contiene el uso frecuente de un método sencillo para buscar las interfaces de red y direcciones IP a través del nombre por medio de la configuración de un procedimiento de nombres de dominio (DNS) oportuno. La aplicación de nombres de dominio completos (FQDN), por direcciones IP, que permite señalar las direcciones de red puede ayudar a facilitar la configuración de servicios y aplicaciones, e incrementar la posibilidad de mantenimiento de los archivos de configuración.
Se pretende mostrar que para realizar una configuración de un Servidor DNS en Linux Ubuntu se tiene que instalar desde los repositorios en consola. Luego, se pasa a un directorio del programa para poder editar los archivos de configuración. Para esto se sugiere entrar a ese directorio como “root” con el objetivo de no tener inconvenientes de permisos no autorizados al momento de copiar ficheros o se cambien los ya existentes. Al estar dentro del directorio se tiene que empezar por editar el archivo “named.conf.local”.
Configuración y asignación de una IP estática
Se comienza por observar cómo se encuentra configurada o configurada la(s) tarjeta(s) de mi red en el servidor usando el comando “ifconfig”. Al identificar que tarjeta se tiene, se inicia la configuración del Servidor dependiendo lo que esté buscando. Cómo se dijo antes, se empieza por asignar una @IP estática a la tarjeta de la red que permite ofrecer el servicio a la red que usted este manejando. Esto se realiza editando el fichero “/etc/network/interfaces”.
Reiniciar la red
El paso siguiente es reiniciar la red con el siguiente comando “/etc/init.d/networking restart”, luego se pasa a verificar que la configuración de la red esta correcta por medio del comando ifconfig que se empleó con antelación.
Instalar Servidor DNS
Una vez realizado los pasos anteriores se procede por instalar el Servidor DNS instalando la herramienta bindd9. Para esto se comprueba antes de empezar la instalación, que no haya sido instalado con el comando “dpkg –L bind9”. En caso que esta instrucción muestre todos los ficheros del paquete, esto nos informa que ya fue instalado. De no ser así la información que mostrará, es un mensaje informando que esta herramienta no se encuentra instalada. De ser esta última la respuesta, se procederá por instalar usando el comando “apt-get install bind9”.
Configurar Servidor DNS
Una vez instalado se procede a realizar la configuración del Servidor DNS, como antes se examinó, ya todos los ficheros que se precisan editar se hallan en el directorio “/etc/bind/”. En este directorio se encuentran los archivos o ficheros “named.conf.options” así como también el fichero “/etc/bind/named.conf.local” y estos dos ficheros son los primeros que se editan.
Archivo /etc/bind/named.conf.options
Iniciada la Configuración del Servidor DNS como se dijo se procede a editar un primer fichero, que es el archivo “/etc/bind/named.conf.options”. Para realizar esta edición se empieza por desconectar las líneas de foward only (solo hacia delante) y además forwarders (traslado) y agregar las @IP de servidores DNS externos en donde se puede observar cómo va nuestro servicio cuando no se obtenga respuesta a la consulta realizada.
/etc/bind/named.conf.options — 1 of 3
acl «trusted» {
10.128.10.11; # ns1 – can be set to localhost
10.128.20.12; # ns2
10.128.100.101; # host1
10.128.200.102; # host2
};
options {
Copy
En vista de que se tiene la lista de clientes DNS de confianza, se tiene que editar el archivo o fichero. En este momento, el inicio del fichero tiene el siguiente aspecto:
/etc/bind/named.conf.options — 2 of 3
. . .
};
options {
directorio «/var/cache/bind»;
. . .
}
Debajo de la directiva directorio, se tiene que añadir las líneas de configuración resaltadas (y realice la sustitución en la dirección IP adecuada de ns1) para que tenga un aspecto similar a este:
/etc/bind/named.conf.options — 3 of 3
. . .
};
options {
directorio «/var/cache/bind»;
recursion yes; # enables resursive queries
allow-recursion { trusted; }; # allows recursive queries from «trusted» clients
listen-on { 10.128.10.11; }; # ns1 private IP address – listen on private network only
allow-transfer { none; }; # disable zone transfers by default
forwarders {
8.8.8.8;
8.8.4.4;
};
. . .
};
Copy
Al terminar, guarde y cierre el archivo named.conf.options. En la configuración anterior se detalla que solo sus propios servidores (los “trusted”) podrán consultar su servidor DNS en busca de dominios externos.
Archivo /etc/bind/named.conf.local
Acto seguido se procede editar el archivo o fichero /etc/bind/named.conf.local, su edición se realiza porque este fichero o archivo se describe las zonas de búsqueda directa e inversa del servicio DNS. Así como del dominio de la zona directa y la subred de la región inversa. Además, se tiene que agregar qué tipo de servicio es y asimismo, en que archivos se realizará la búsqueda de los nombres.
Se evidencia que no se observa errores de sintaxis en el fichero o archivo, debido al uso del comando “named-checkconf”. No se preocupe si no devuelve una respuesta. Esto quiere decir que no hay errores. En caso contrario indicará cual es el error de sintaxis, este señala y puntualiza en que línea se puede ver el error de sintaxis. Por ejemplo, en caso de cometer el error al colocar el nombre de un fichero de las tablas directa e inversa, esto no lo percibirá.
Varios tienen que contener algunos comentarios, el archivo tendría que estar vacío. En este momento se puntualizan las zonas de reenvío e inversas. Las zonas DNS escogen una distancia determinada para administrar y define registros DNS. En vista que todos los dominios se encuentran en el subdominio, se usa como el área de reenvió. Esto por las direcciones IP privadas de los servidores en el espacio IP 10.128.0.0/16, se configura una zona inversa con el objetivo de precisar búsquedas inversas en ese espacio.
Agregar la zona de reenvió en las siguientes líneas, supliendo el nombre de la zona suyo y la dirección IP privada del servidor DNS secundario en la directiva allow-transfer:
/etc/bind/named.conf.local — 1 of 2
zone «nyc3.example.com» {
type master;
file «/etc/bind/zones/db.nyc3.example.com»; # zone file path
allow-transfer { 10.128.20.12; }; # ns2 private IP address – secondary
};
Copy
Suponiendo que nuestra subred privada es 10.128.0.0/16, agregue la zona inversa con las siguientes líneas (tenga en cuenta que el nombre de nuestra zona inversa comienza con “128.10”, que es el octeto inverso de “10.128”):
/etc/bind/named.conf.local — 2 of 2
. . .
};
zone «128.10.in-addr.arpa» {
type master;
file «/etc/bind/zones/db.10.128»; # 10.128.0.0/16 subnet
allow-transfer { 10.128.20.12; }; # ns2 private IP address – secondary
};
Si los servidores incluyen varias subredes privadas, pero están en el mismo centro de datos, certifique de especificar una zona adicional y un archivo de zona para cada subred distinta. Cuando termine de añadir todas las zonas que quiera, guarde el archivo named.conf.local y ciérrelo.
Ahora que nuestras zonas están especificadas en BIND, debemos crear los archivos correspondientes de la zona de reenvío e inversa.
Crear el archivo de la zona de reenvío
El archivo de la zona de reenvío representa el punto en el que definimos los registros DNS para reenviar búsquedas DNS. Es decir, cuando el DNS reciba una consulta de nombre, “host1.nyc3.example.com”, por ejemplo, realizará en el archivo de la zona de reenvío para resolver la dirección IP privada correspondiente de host1.
Se fundamenta el archivo de la zona de reenvío en el fichero de zona db.local de muestra. Copiarlo a la ubicación adecuada con los siguientes comandos:
Se crea el directorio en el que se encuentran los archivos de zona. Según la configuración de named.conf.local, esa ubicación debería ser /etc/bind/zones:
• sudo mkdir /etc/bind/zones
•
Copy
Se fundamenta el archivo de la zona de reenvío en el fichero de zona db.local de muestra. Copiarlo a la ubicación adecuada con los siguientes comandos:
• sudo cp /etc/bind/db.local /etc/bind/zones/db.nyc3.example.com
•
Copy
Ahora, editaremos nuestro archivo de la zona de reenvío:
• sudo nano /etc/bind/zones/db.nyc3.example.com
Copy
Inicialmente, tendrá un aspecto similar al siguiente:
/etc/bind/zones/db.nyc3.example.com — original
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost. ; delete this line
@ IN A 127.0.0.1 ; delete this line
@ IN AAAA ::1 ; delete this line
Copy
Primero, deberá editar el registro SOA. Sustituya el primer “localhost” por el FQDN de ns1 y luego “root.localhost” por “admin.nyc3.example.com”. Cada vez que edite un archivo de zona, deberá incrementar el valor serial antes de reiniciar el proceso named. Lo incrementaremos a “3”. Ahora debería tener un aspecto similar a este:
/etc/bind/zones/db.nyc3.example.com — updated 1 of 3 @ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (3 ; Serial. . .Copy
Luego de estas instrucciones proceda a eliminar los registros. Si no está seguro de las líneas que debe eliminar, estas se marcan con un comentario “delete this line” (eliminar esta línea) encima.
Al final del archivo, añada los registros de su servidor de nombres con las siguientes líneas (sustituya los nombres por los suyos). Observe que en la segunda columna se especifica que estos son registros “NS”:
/etc/bind/zones/db.nyc3.example.com — updated 2 of 3
. . .
; name servers – NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
Copy
Ahora, añada los registros A para sus hosts que pertenecen a esta zona. Esto incluye cualquier servidor cuyo nombre deseemos que termine con “.nyc3.example.com” (sustituya los nombres y las direcciones IP privadas). Usando nuestros nombres de ejemplo y las direcciones IP privadas, añadiremos registros A para ns1, ns2, host1 y host2:
/etc/bind/zones/db.nyc3.example.com — updated 3 of 3
. . .
; name servers – A records
ns1.nyc3.example.com. IN A 10.128.10.11
ns2.nyc3.example.com. IN A 10.128.20.12
; 10.128.0.0/16 – A records
host1.nyc3.example.com. IN A 10.128.100.101
host2.nyc3.example.com. IN A 10.128.200.102
Copy
Guarde y cierre el archivo db.nyc3.example.com.
Nuestra zona de reenvío de ejemplo final tendrá el siguiente aspecto:
/etc/bind/zones/db.nyc3.example.com — updated
$TTL 604800
@ IN SOA ns1.nyc3.example.com. admin.nyc3.example.com. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; name servers – NS records
IN NS ns1.nyc3.example.com.
IN NS ns2.nyc3.example.com.
; name servers – A records
ns1.nyc3.example.com. IN A 10.128.10.11
ns2.nyc3.example.com. IN A 10.128.20.12
; 10.128.0.0/16 – A records
host1.nyc3.example.com. IN A 10.128.100.101
host2.nyc3.example.com. IN A 10.128.200.102
Copy
Se crea el directorio en el que se encuentran los archivos de zona. Según la configuración de named.conf.local, esa ubicación debería ser /etc/bind/zones:
- sudo mkdir /etc/bind/zones
Copy
Ahora, prosigamos con los archivos de la zona inversa.
Tabla de búsqueda directa DNS e inversa
El archivo dónde se encuentran las tablas de la búsqueda directa “/etc/bind/db.webebre.net.host” será el próximo a ser editado. En las primeras líneas son unas medidas relacionadas con la actualización del DNS (número de serie y periodos de actuación). Luego en la línea que viene señala quién es el servidor primario (NS= Name Server).
Las líneas que continúan señalan las @IP’s de las variadas PC’s que son componentes del dominio (A= Address). Luego se edita las tablas de búsqueda inversa contenidas en el archivo “/etc/bind/db.192.168.83.rev”. De igual manera, se realiza la comprobación de errores de sintaxis en DNS Ubuntu.
Errores de sintaxis en DNS Ubuntu
Así como se puede comprobar los errores de sintaxis del fichero /etc/bind/named.conf.local, se lleva a cabo la comprobación de estos dos ficheros, en las que se encuentran las tablas de búsqueda directa e inversa y se comprueba que ambas tablas tengan la sintaxis correcta con el comando “named-checkzone webebre.net/etc/bind/db.webebre.net.host” para el archivo de la tabla de búsqueda directa y “named-checkzone webebre.net /etc/bind/db.192.168.83.rev” para el fichero de la tabla de búsqueda inversa. La respuesta en caso de estar correctos será la palabra OK.
Definir la IP y el dominio para hacer las peticiones DNS el servidor
Al configurar el Servidor DNS se tiene que señalar en el computador que el servidor DNS se mantiene, que es el mismo. Esto se señala cuando se edita el archivo “/etc/resolv.conf”, señalando la @IP del Servidor y el dominio por dónde se lleva a cabo las búsquedas.
Reiniciar Bing 9
Ya terminado de configurar el Servidor DNS, se pasa por reiniciar el bind a fin de que los cambios realizados en los archivos antes editados sean efectivos. Este reiniciado se realiza con el comando /etc/init.d/bind9 restart.
Servidor DNS comprobado con el comando nslookup
El Servidor DNS ya se encuentra activado, con el objetivo de verificar si está funcionando perfectamente, se lleva a cabo unas pruebas para comprobar con el comando nslookup. Este comando permite verificar que resuelve solicitudes de la zona directa. Así como de la zona inversa, a esta altura se confirma que el Servidor DNS se encuentra instalado, configurado y activado perfectamente.
Te invito que sigas conociendo sobre tecnología e informática y aprender usar bien, leyendo los siguientes post:
También puede interesarte este contenido relacionado:
- ¿Qué son los Tipos de Nube en Informática?
- Ejemplos de Software Educativo, Conoce Algunos
- Qué son los Software de Sistema, Tipos y Funciones