Cómo instalar y configurar 'Servidor DNS solo en caché' con 'Unbound' en RHEL / CentOS 7


Almacenamiento en caché de servidores de nombres usando ' Unbound ' (es un software de servidor DNS de validación, recursivo y almacenamiento en caché), en RHEL/CentOS 6.x (donde x es el número de versión), usamos bind software para configurar servidores DNS.

Aquí, en este artículo, vamos a utilizar software de almacenamiento en caché "no vinculado" para instalar y configurar un servidor DNS en sistemas RHEL/CentOS 7.

Los servidores de caché DNS se utilizan para resolver cualquier consulta de DNS que reciben. Si el servidor almacena en caché la consulta y en el futuro las mismas consultas solicitadas por cualquier cliente, la solicitud se entregará desde la caché DNS " no vinculada ", esto se puede hacer en milisegundos que la primera vez que se resolvió.

El almacenamiento en caché solo actuará como un agente para resolver la consulta del cliente de cualquiera de los reenviadores. El uso del servidor de almacenamiento en caché reducirá el tiempo de carga de las páginas web al mantener la base de datos de caché en un servidor independiente.

Para fines de demostración, utilizaré dos sistemas. El primer sistema actuará como un servidor DNS maestro (primario) y el segundo sistema actuará como un cliente DNS local.

Operating System   :    CentOS Linux release 7.0.1406 (Core)
IP Address	   :	192.168.0.50
Host-name	   :	ns.tecmintlocal.com
Operating System   :	CentOS 6
IP Address	   :	192.168.0.100
Host-name	   :	client.tecmintlocal.com

Paso 1: Verifique el nombre de host y la IP del sistema

1. Antes de configurar un servidor DNS de almacenamiento en caché, asegúrese de haber agregado el nombre de host correcto y configurado la dirección IP estática correcta para su sistema, si no configura la dirección IP estática del sistema.

2. Después de configurar el nombre de host correcto y la dirección IP estática, puede verificarlos con la ayuda de los siguientes comandos.

# hostnamectl
# ip addr show | grep inet

Paso 2: instalación y configuración de Unbound

3. Antes de instalar el paquete "Unbound", debemos actualizar nuestro sistema a la última versión, después de eso podemos instalar el paquete sin vincular.

# yum update -y
# yum install unbound -y

4. Una vez instalado el paquete, haga una copia del archivo de configuración independiente antes de realizar cambios en el archivo original.

# cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.original

5. A continuación, utilice cualquiera de sus editores de texto favoritos para abrir y editar el archivo de configuración "unbound.conf".

# vim /etc/unbound/unbound.conf

Una vez que el archivo esté abierto para editarlo, realice los siguientes cambios:

Busca Interfaz y habilita la interfaz que vamos a utilizar o si nuestro servidor tiene múltiples interfaces tenemos que habilitar la interfaz 0.0.0.0 .

Aquí, la IP de nuestro servidor era 192.168.0.50 , así que voy a usar unbound en esta interfaz.

Interface 192.168.0.50

Busque la siguiente cadena y hágala "".

do-ip4: yes
do-udp: yes
do-tcp: yes

Para habilitar el registro, agregue la variable como se muestra a continuación, registrará todas las actividades no vinculadas.

logfile: /var/log/unbound

Habilite el siguiente parámetro para ocultar las consultas id.server y hostname.bind .

hide-identity: yes

Habilite el siguiente parámetro para ocultar las consultas de version.server y version.bind .

hide-version: yes

Luego busque control de acceso para permitir. Esto es para permitir qué clientes pueden consultar este servidor independiente.

Aquí he usado 0.0.0.0 , eso significa que cualquiera envía una consulta a este servidor. Si necesitamos rechazar la consulta para algún rango de red, podemos definir qué red debe rechazarse de consultas no vinculadas.

access-control: 0.0.0.0/0 allow

Nota: En lugar de permitir, podemos reemplazarlo con allow_snoop , esto habilitará algunos parámetros adicionales como dig y admitirá tanto recursivo como no recursivo.

Luego busque dominio inseguro . Si nuestro dominio funciona con claves sec de DNS , necesitamos definir nuestro servidor disponible para dominio inseguro . Aquí nuestro dominio será tratado como inseguro.

domain-insecure: "tecmintlocal.com

Luego, cambie los reenviadores para nuestra consulta solicitada que este servidor no cumplió, la reenviará al dominio raíz (. ) y resolverá la consulta.

forward-zone:
        name: "."
        forward-addr: 8.8.8.8
        forward-addr: 8.8.4.4

Finalmente, guarde y salga del archivo de configuración usando wq! .

6. Después de realizar la configuración anterior, ahora verifique el archivo unbound.conf en busca de errores usando el siguiente comando.

# unbound-checkconf /etc/unbound/unbound.conf

7. Una vez finalizada la verificación del archivo sin errores, puede reiniciar de forma segura el servicio "no vinculado" y habilitarlo al iniciar el sistema.

# systemctl start unbound.service
# sudo systemctl enable unbound.service

Paso 3: prueba la caché de DNS localmente

8. Ahora es el momento de comprobar nuestra caché de DNS, haciendo una "exploración" (consulta) de un dominio "india.com". Al principio, los resultados del comando "drill" para el dominio "india.com" tardarán algunos milisegundos, y luego realizarán un segundo ejercicio y tendrán una nota sobre el tiempo de consulta que se necesita para ambos ejercicios.

drill india.com @192.168.0.50

¿Viste en el resultado anterior, la primera consulta tomó casi 262 ms para resolverse y la segunda consulta tomó 0 ms para resolver el dominio ( india.com ).

Eso significa que la primera consulta se almacena en caché en nuestra caché de DNS, por lo que cuando ejecutamos "drill" por segunda vez, la consulta se entrega desde nuestra caché de DNS local, de esta manera podemos mejorar la velocidad de carga de los sitios web.

Paso 4: Descargue Iptables y agregue reglas de Firewalld

9. No podemos usar iptables y firewalld al mismo tiempo en la misma máquina, si lo hacemos, ambos entrarán en conflicto entre sí, por lo que eliminar las reglas de ipables será una buena idea. Para eliminar o vaciar las iptables, use el siguiente comando.

# iptables -F

10. Después de eliminar las reglas de iptables de forma permanente, ahora agregue el servicio DNS a la lista de firewalld de forma permanente.

# firewall-cmd --add-service=dns
# firewall-cmd --add-service=dns --permanent

11. Después de agregar las reglas del servicio DNS, enumere las reglas y confirme.

# firewall-cmd --list-all

Paso 5: Gestión y resolución de problemas de Unbound

12. Para obtener el estado actual del servidor, use el siguiente comando.

# unbound-control status

13. En caso de que desee tener un volcado de la información de la caché de DNS en un archivo de texto, puede redirigirlo a algún archivo usando el siguiente comando para uso futuro.

 # unbound-control dump_cache > /tmp/DNS_cache.txt

14. Para restaurar o importar la caché desde el archivo volcado, puede usar el siguiente comando.

# unbound-control dump_cache < /tmp/DNS_cache.txt

15. Para verificar si la dirección específica fue resuelta por nuestros reenviadores en el servidor de caché independiente, use el siguiente comando.

# unbound-control lookup google.com

16. Algunas veces, si nuestro servidor de caché DNS no responde nuestra consulta, mientras tanto podemos usar para vaciar el caché para eliminar información como A , AAA , NS , SO , CNAME , MX , PTR , etc. registros de la caché de DNS. Podemos eliminar toda la información usando flush_zone , esto eliminará toda la información.

# unbound-control flush www.digitalocean.com
# unbound-control flush_zone tecmintlocal.com

17. Comprobar qué forwards se utilizan actualmente para resolver.

# unbound-control list_forwards

Paso 6: Configuración de DNS del lado del cliente

18. Aquí he usado un servidor CentOS 6 como mi máquina cliente, la IP de esta máquina es 192.168.0.100 y voy a usar la IP de mi servidor DNS independiente. (es decir, DNS primario) en su configuración de interfaz.

Inicie sesión en la máquina del Cliente y configure la IP del servidor DNS primario en la IP de nuestro servidor independiente.

Ejecute el comando de configuración y elija la configuración de red desde el administrador de red TUI .

Luego elija la configuración de DNS , inserte la IP del servidor DNS independiente como DNS primario , pero aquí he usado tanto en Principal como en Secundario porque no tengo ningún otro servidor DNS.

Primary DNS	: 192.168.0.50
Secondary DNS	: 192.168.0.50

Haga clic en Aceptar -> Guardar y salir -> Salir .

19. Después de agregar las direcciones IP de DNS primaria y secundaria, ahora es el momento de reiniciar la red con el siguiente comando.

# /etc/init.d/network restart

20. Ahora es el momento de acceder a cualquiera de los sitios web desde la máquina cliente y verificar la caché en el servidor DNS independiente.

# elinks aol.com
# dig aol.com

Conclusión

Anteriormente, estábamos acostumbrados a configurar el servidor de caché de DNS mediante el paquete de enlace en los sistemas RHEL y CentOS. Ahora, hemos visto cómo configurar un servidor de caché DNS utilizando un paquete independiente. Espero que esto resuelva su solicitud de consulta más rápido que el paquete de enlace.