Source: https://comoinstalar.me/como-instalar-el-servidor-dns-bind-en-centos-7/
Timestamp: 2020-02-17 14:16:23+00:00

Document:
▷ Cómo instalar el servidor DNS Bind en CentOS 7 - ✅ [2020]
En este artículo veremos cómo instalar el servidor DNS Bind en CentOS 7 paso a paso, de modo que al final de este tutorial tendrás disponible para tu red local un servicio DNS capaz de resolver nombres de Internet y del dominio de tu red local.
Antes de instalar el servidor DNS Bind en CentOS 7
Configurar el firewall de CentOS 7 para el servicio DNS
Cómo configurar el servidor DNS Bind en CentOS 7
Configuración de los clientes de la red
CentOS 7 como servidor de nombres de la red local
Resolución inversa de nombres en CentOS 7
Para completar esta breve guía de instalación del servidor DNS Bind en CentOS 7 necesitarás partir de unos mínimos requerimientos:
En este tutorial trabajaremos sobre una red 192.168.0.0/24, con un servidor CentOS 7 en la dirección IP 192.168.0.102 que será el que actúe como servidor DNS. Adicionalmente, configuraremos el servicio Bind para ofrecer resolución de nombres para el dominio dominio.local.
Para instalar el servidor DNS Bind en CentOS 7 usaremos los paquetes de la distribución, así que como primer paso actualizaremos las listas y los paquetes instalados:
El paquete que necesitamos es bind, aunque también añadiremos el paquete bind-utils para poder usar algunas herramientas interesantes. Todos estos paquetes los instalaremos con yum:
~$ sudo yum install -y bind bind-utils
Tras la descarga e instalación de los paquetes, un nuevo servicio está disponible en CentOS 7, el servicio named.service o named para abreviar. Para que el servicio DNS named arranque con cada inicio de CentOS 7 tendremos que habilitarlo con systemctl:
~$ sudo systemctl enable named
Todavía no vamos a iniciar el servicio DNS, ya que con la configuración por defecto no servirá de mucho.
En CentOS 7 el firewall suele estar activado por defecto, así que es necesario añadir una regla que permita el acceso al servicio DNS:
~$ sudo firewall-cmd --permanent --zone=public --add-service=dns
Se aplicarán los cambios al recargar la configuración del firewall:
Para configurar el servicio DNS Bind en CentOS 7 debemos tener en cuenta que el archivo principal es /etc/named.conf.
~$ sudo nano /etc/named.conf
En primer lugar permitiremos que el servicio escuche peticiones de red desde todas las interfaces disponibles, ya que por defecto sólo permite conexiones desde el adaptador loopback. Para ello desactivaremos las directivas listen-on y listen-on-v6:
#       listen-on port 53 { 127.0.0.1; };
Guardamos los cambios y antes de iniciar Bind con la nueva configuración comprobamos que no haya errores en la configuración con el comando named-checkconf:
Si este comando no produce ninguna salida, la sintaxis de la configuración es correcta, y podemos arrancar el servicio Bind:
~$ sudo systemctl start named
Podrás comprobar en cualquier momento el estado del servicio con el comando systemctl status named:
Si al consultar el estado del servicio obtienes resultados de este tipo:
...named[10098]: network unreachable resolving './DNSKEY/IN': 2001:dc3::35#53
...named[10098]: network unreachable resolving './DNSKEY/IN': 2001:500:2::c#53
...named[10098]: network unreachable resolving './DNSKEY/IN': 2001:7fe::53#53
Es síntoma de que hay problemas con el sistema de direcciones IPv6, puediendo ser un problema con el router, puerta de enlace, o tu propia máquina CentOS 7. Si no necesitas el soporte IPv6, puedes configurar el inicio del servicio named para que sólo trabaje con el protocolo IPv4, editando el archivo /etc/sysconfig/named:
~$ sudo nano /etc/sysconfig/named
Tendrás que añadir la directiva OPTIONS:
Tras guardar los cambios, reinicia el servicio:
~$ sudo systemctl restart named
Al volver a comprobar el estado del servicio habrán desaparecido esos mensajes:
En este caso el propio servidor CentOS 7 que actúa como servidor DNS también será cliente de su propio servicio. Por tanto se le aplica lo mismo que al resto de máquinas de la red que usen el servicio DNS.
Edita el archivo /etc/resolv.conf en cada máquina que vaya a usar el servicio:
Desactivaremos cualquier directiva nameserver presente e incluiremos una nueva con la dirección IP del servidor CentOS 7 en el que está corriendo el servicio DNS Bind:
Tras guardar los cambios y cerrar el archivo, ya podemos probar la resolución de nombres en cualquier máquina de la red con el comando ping y el dominio de Internet que prefieras:
~$ ping kernel.org
64 bytes from kernel.org (198.145.29.83): icmp_seq=1 ttl=47 time=164 ms
64 bytes from kernel.org (198.145.29.83): icmp_seq=2 ttl=47 time=183 ms
64 bytes from kernel.org (198.145.29.83): icmp_seq=3 ttl=47 time=165 ms
Ya podemos pasar al siguiente paso de la configuración.
Si finalmente terminas de configurar el servicio DNS de acuerdo a tus necesidades, sería interesante incluirlo en la configuración del servidor DHCP que use tu red.
En el siguiente paso de la configuración del servidor DNS haremos que también resuelva los nombres de las máquinas de la red local.
Para ello añadiremos al final del archivo named.conf la zona de resolución directa (de nombre a dirección IP) para el dominio de nuestra red local, en este ejemplo dominio.local:
Al final del archivo añadimos la definición de la zona:
zone "dominio.local" IN {
file "named.dominio.local";
Guardamos los cambios y creamos el archivo que acabamos de indicar, named.dominio.local, en la ruta /var/named/, que es donde la configuración por defecto busca estos archivos:
~$ sudo nano /var/named/named.dominio.local
Y creamos toda la estructura de un típico archivo de zona:
@       IN      SOA     ns.dominio.local. root.dominio.local. (
2419200 ; expiration
604800  ; TTL negative cache
IN      NS      ns.dominio.local.
ns.dominio.local.       IN      A       192.168.0.102
centos6.dominio.local.  IN      A       192.168.0.117
centos7.dominio.local.  IN      A       192.168.0.102
centos8.dominio.local.  IN      A       192.168.0.113
En el encabezado del registro SOA figuran el servidor DNS del dominio, el que estamos configurando, y la dirección de correo del administrador, pero sin la @. Dentro de los campos del registro SOA, el serial representa un número de serie que debería cambiar cada vez que modifiquemos el archivo, lo que indicaría a servidores secundarios que su contenido ha cambiado.
IMPORTANTE: Todos los nombres de dominio terminan con un punto.
A continuación indicamos los servidores de nombres del dominio (en este caso sólo el que estamos configurando) y finalmente los registros de nombres, tipo A, de las distintas máquinas. En este ejemplo, ns.dominio.local es la misma máquina que centos7.dominio.local.
Guardados los cambios, además de comprobar la configuración general con named-checkconf, podemos comprobar también la del archivo de zona con el comando named-checkzone, indicando el dominio y el archivo de zona:
~$ sudo named-checkzone dominio.local /var/named/named.dominio.local
zone dominio.local/IN: loaded serial 0
Es el momento de recargar la configuración del servicio named:
~$ sudo systemctl reload named
Ahora podemos probar la resolución de nombres entre unas máquinas y otras, con el comando ping y los nombres de máquina que hayas definido:
~$ ping centos7.dominio.local
PING centos7.dominio.local (192.168.0.102) 56(84) bytes of data.
64 bytes from 192.168.0.102 (192.168.0.102): icmp_seq=1 ttl=64 time=0.334 ms
64 bytes from 192.168.0.102 (192.168.0.102): icmp_seq=2 ttl=64 time=0.550 ms
64 bytes from 192.168.0.102 (192.168.0.102): icmp_seq=3 ttl=64 time=0.433 ms
Puede que adicionalmente te interese la resolución inversa, que consiste en que dada una dirección IP obtengas su nombre de red. Por ejemplo, tomando el ejemplo anterior con ping, podríamos usar el comando nslookup para ver qué nombre (centos7.dominio.local) corresponde a la dirección IP 192.168.0.102:
~$ nslookup 192.168.0.102
** server can't find 102.0.168.192.in-addr.arpa: NXDOMAIN
Pero no funciona porque nuestro servicio DNS no ofrece resolución inversa. Pero vamos a solucionarlo añadiendo una zona de resolución inversa, para lo que editaremos de nuevo el archivo named.conf:
A continuación de la definición de zona directa que incluimos anteriormente, añadiremos la siguiente:
Guardamos los cambios y editamos el nuevo fichero de zona inversa:
~$ sudo nano /var/named/named.0.168.192
@       IN      SOA     dominio.local. root.dominio.local. (
2419200 ; expires
102     IN      PTR     ns.dominio.local.
117     IN      PTR     centos6.dominio.local.
102     IN      PTR     centos7.dominio.local.
113     IN      PTR     centos8.dominio.local.
La estructura es muy similar a la del archivo de zona directa, pero ahora usamos registros PTR y la parte numérica que varía de la dirección IP se relaciona con su nombre de red.
Guardados los cambios conviene pasar las utilidades named-checkconf y named-checkzone:
~$ sudo named-checkzone 0.168.192 /var/named/named.0.168.192
zone 0.168.192/IN: loaded serial 0
Ya podemos recargar el servicio named:
Y podremos probar de nuevo el comando nslookup:
102.0.168.192.in-addr.arpa    name = ns.dominio.local.
102.0.168.192.in-addr.arpa    name = centos7.dominio.local.
Ahora que sabes cómo instalar y configurar el servidor DNS Bind en CentOS 7 ya puedes ofrecer resolución de nombres para los sistemas de tu red, tanto nombres de Internet como dominios locales. Lo siguiente es añadir algún servidor DNS secundario que replique la configuración del primario y entre a funcionar en caso de caída.
¿Te ha servido esta pequeña guía de instalación y configuración del servicio DNS Bind en Debian 9? Si es así y estás tan agradecido que te gustaría añadir tu granito de arena al mantenimiento de este sitio y elaboración de más tutoriales de CentOS 7 y DNS, cualquier mínima contribución es bien recibida. ¡Gracias!
Categorías CentOS Etiquetas Bind, CentOS, CentOS 7, DNS, Linux 2 comentarios Navegación de entradas
2 comentarios en “Cómo instalar el servidor DNS Bind en CentOS 7”
15 febrero, 2020 a las 7:52 pm
Hola, excelente aporte en la configuración. Oye, pero cómo puedo hacer para que la misma dirección de dns funja también como puerta de enlace.
16 febrero, 2020 a las 2:06 pm
Debes activar el enrutamiento en el servidor CentOS 7 y configurar el servidor DHCP o las configuraciones de los equipos en red para que usen el servidor CentOS 7 como puerta de enlace.

References: Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución