#4sysadmins

Inicio » GNU/Linux » ubuntu 18 dns not working

ubuntu 18 dns not working

Follow #4sysadmins on WordPress.com

¿Problemas con los DNS en Ubuntu 18.04 Bionic?

EDITADO: mejor opción es utilizar NETPLAN el nuevo configurador de networking de Debian y derivados. Es fácil usar y configurar. +info

Con la nueva resolución de nombres añadida en la versión 18 de Ubuntu se han dado varios problemas con aplicaciones de terceros como por ejemplo al montar tu propio DNS server (BIND9 o dnsmasc) o con otras herramientas como por ejemplo VPN o Cloud-init para servidores aprovisionados en el cloud..

La cuestión es que ahora el archivo /etc/resolv.conf es administrado de forma nativa por systemd-resolved y no por resolvconf . Se ha intentado dar compatibilidad con «antiguas herramientas Linux» (lo que dicen ellos…) y básicamente la han cagado (por supuesto hasta futuros parches y/o versiones). No voy a entrar en largas explicaciones porque para el que las quiera, puede empezar a leer sobre los modos de funcionamiento de este nuevo demonio (resolved man pages), luego seguir con NetworkManager el cual tiene mucho que decir aquí también, y si aún te quedan ganas puedes ver algunos de los intentos por resolver parte de este problema en:

y un largo etcétera…

Al final lo mejor es meterse en como cada demonio realiza su trabajo y volver a una configuración compatible con el «antes y el ahora».

Básicamente el archivo /etc/resolv.conf es administrado de forma manual (propio de antaño y de sysadmins) o por un demonio externo (systemd-resolved, resolvconf o openresolv) que a la vez este puede tener «dependencias de» por ejemplo NetworkManager. Bien pues para poner fin a nuestros males y que:

  • El dhcp de la red modifique el archivo /etc/resolv.conf con los DNS de nuestro ISP/router
  • Programas como VPN también puedan gestionar este archivo (recordar, openvpn trabaja con resolvconf y si tenemos configurado el sistema con systemd-resolved, tendremos o DNS de ISP, de VPN o en algunos casos ninguno de los dos :D)
  • cloud-init para servidores desplegados en el Cloud

Solución

  • Deshabilitar y parar el maldito systemd-resolved (hasta que den solución…):
systemctl disable systemd-resolved
systemctl stop systemd-resolved
  • Eliminar el archivo /etc/resolv.conf:
rm /etc/resolv.conf
  • Configurar correctamente NetworkManager:
vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
#default: NetworkManager will update /etc/resolv.conf to reflect the nameservers provided by currently active connections.
dns=default
#resolvconf: NetworkManager will run resolvconf to update the DNS configuration. 
rc-manager=resolvconf

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no
  • Instalar resolvconf:
apt update && apt install resolvconf
  • Habilitar e iniciar el demonio:
systemctl enable resolvconf && systemctl start resolvconf
  • Crear enlace directo a /etc/resolv.conf:
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Una vez reiniciado, al hacer un cat del archivo resolv.conf deberá de aparecer los DNS de vuestro ISP o LAN (antes 127.0.0.53). Cuando instaléis un servicio que necesite nuevos DNS como un cliente VPN este, será capaz de añadir nuevos servidores.

Listo!!


Deja un comentario, Gracias!