Cómo configurar servidores de nombres DNS permanentes en Ubuntu y Debian


/Etc/resolv.conf es el archivo de configuración principal para la biblioteca de resolución de nombres DNS. El resolutor es un conjunto de funciones de la biblioteca C que proporcionan acceso al Sistema de nombres de dominio de Internet (DNS). Las funciones están configuradas para verificar las entradas en el archivo/etc/hosts, o en varios servidores de nombres DNS, o para usar la base de datos del host del Servicio de información de red (NIS).

En los sistemas Linux modernos que utilizan systemd (administrador de sistemas y servicios), los servicios de resolución de nombres o DNS se proporcionan a las aplicaciones locales a través del servicio resuelto por systemd. De forma predeterminada, este servicio tiene cuatro modos diferentes para manejar la resolución del nombre de dominio y utiliza el archivo stub de DNS systemd (/run/systemd/resolve/stub-resolv.conf) en el modo de operación predeterminado.

El archivo stub de DNS contiene el stub local 127.0.0.53 como el único servidor DNS, y se redirige al archivo /etc/resolv.conf que se utilizó para agregar los servidores de nombres utilizados por el sistema.

Si ejecuta el siguiente comando ls en /etc/resolv.conf, verá que este archivo es un enlace simbólico al archivo /run/systemd/resolve/stub-resolv.conf.

$ ls -l /etc/resolv.conf

lrwxrwxrwx 1 root root 39 Feb 15  2019 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

Desafortunadamente, debido a que /etc/resolv.conf es administrado indirectamente por el servicio systemd-resuelto y, en algunos casos, por el servicio de red (mediante initscripts o NetworkManager), cualquier cambio realizado manualmente por un usuario no se puede guardar de forma permanente o solo durar un tiempo.

En este artículo, mostraremos cómo instalar y usar el programa resolvconf para configurar servidores de nombres DNS permanentes en el archivo /etc/resolv.conf en las distribuciones Debian y Ubuntu Linux.

¿Por qué querría editar el archivo /etc/resolv.conf?

La razón principal podría deberse a que la configuración de DNS del sistema está mal configurada o prefiere utilizar servidores de nombres específicos o los suyos propios. El siguiente comando cat muestra el servidor de nombres predeterminado en el archivo /etc/resolv.conf en mi sistema Ubuntu.

$ cat /etc/resolv.conf

En este caso, cuando las aplicaciones locales como el administrador de paquetes APT intentan acceder a los FQDN (Nombres de dominio completos) en la red local, el resultado es un error de "Falla temporal en la resolución de nombres" como se muestra en la siguiente captura de pantalla.

Lo mismo sucede cuando ejecuta un comando ping.

$ ping google.com

Entonces, cuando un usuario intenta configurar manualmente los servidores de nombres, los cambios no duran mucho o se revocan después de reiniciar. Para resolver esto, puede instalar y usar la utilidad reolvconf para que los cambios sean permanentes.

Para instalar el paquete resolvconf como se muestra en la siguiente sección, primero debe configurar manualmente los siguientes servidores de nombres en el archivo /etc/resolv.conf, de modo que pueda acceder a los FQDM de los servidores de repositorio de Ubuntu en Internet.

nameserver 8.8.4.4
nameserver 8.8.8.8

Instalación de resolvconf en Ubuntu y Debian

Primero, actualice los paquetes de software del sistema y luego instale resolvconf desde los repositorios oficiales ejecutando los siguientes comandos.

$ sudo apt update
$ sudo apt install resolvconf

Una vez que se complete la instalación de resolvconf, systemd activará resolvconf.service para que se inicie y habilite automáticamente. Para verificar si está en funcionamiento, ejecute el siguiente comando.

$ sudo systemctl status resolvconf.service

Si el servicio no se inicia y habilita automáticamente por cualquier motivo, puede iniciarlo y habilitarlo de la siguiente manera.

$ sudo systemctl start resolvconf.service
$ sudo systemctl enable resolvconf.service
$ sudo systemctl status resolvconf.service

A continuación, abra el archivo de configuración /etc/resolvconf/resolv.conf.d/head.

$ sudo nano /etc/resolvconf/resolv.conf.d/head

y agregue las siguientes líneas en él:

nameserver 8.8.8.8 
nameserver 8.8.4.4

Guarde los cambios y reinicie resolvconf.service o reinicie el sistema.

$ sudo systemctl start resolvconf.service

Ahora, cuando revise el archivo /etc/resolv.conf, las entradas del servidor de nombres deben almacenarse allí de forma permanente. De ahora en adelante, no enfrentará problemas relacionados con la resolución de nombres en su sistema.

Espero que este artículo te ayude a configurar los servidores de nombres DNS permanentes en tus sistemas Ubuntu y Debian. Si tiene alguna consulta o sugerencia, compártala con nosotros en la sección de comentarios a continuación.