Saltar al contenido

¿Cómo soluciono la resolución de DNS que no funciona después de actualizar a Ubuntu 13.10 (Saucy)?

No dejes de compartir nuestro sitio y códigos con otro, apóyanos para hacer crecer esta comunidad.

Solución:

Primero necesita saber un poco sobre cómo funciona la resolución de nombres en Ubuntu desde Ubuntu 12.04.

Stéphane Graber publicó en su blog alguna información al respecto el año pasado aquí. Lo más importante que debe saber es que tanto Ubuntu Server como Ubuntu Desktop usan resolvconf para administrar el resolv.conf expediente. Eso significa que ya no debes editar /etc/resolv.conf directamente; en su lugar, debe configurar la utilidad de configuración de su interfaz de red para proporcionar la información correcta a resolvconf. Para Ubuntu Server, la utilidad de configuración de la interfaz de red es si arriba y está configurado por el archivo /etc/network/interfaces. Para Ubuntu Desktop, la utilidad de configuración de la interfaz de red es Gerente de Redes. Esto es lo que estás usando.

NetworkManager se configura mediante Indicador de red > Editar conexiones. Sin embargo, para las interfaces de red configuradas por DHCP normalmente no es necesario cambiar ninguna configuración manualmente. Normalmente, lo que sucede es que el servidor DHCP (remoto) proporciona a NetworkManager una dirección IP para la interfaz local y la dirección de un servidor de nombres DNS (remoto) para usar. NetworkManager inicia una instancia de un servidor de nombres de reenvío que escucha localmente en 127.0.1.1. Esta dirección, 127.0.1.1, se envía a resolvconf que pone nameserver 127.0.1.1 en /etc/resolv.conf. NetworkManager también proporciona la dirección IP (remota) del servidor de nombres DNS proporcionado por DHCP al servidor de nombres de reenvío. Por lo tanto, un programa que se ejecuta en el sistema local le pide al resolutor que traduzca un nombre de host en una dirección IP; el resolutor consulta el servidor de nombres de reenvío local en 127.0.1.1; el servidor de nombres de reenvío consulta los servidores de nombres remotos de los que se le ha informado, recibe una respuesta y la envía de vuelta a la cadena.

NetworkManager se comunica con el proceso del servidor de nombres de reenvío a través de D-Bus. Puede ver lo que NetworkManager le dijo al servidor de nombres de reenvío ejecutando el comando

nmcli dev list iface eth0 | grep IP4.DNS

Actualización derivada de los comentarios:

Tenga en cuenta que resolvconf realmente escribe el archivo /run/resolvconf/resolv.conf a la que /etc/resolv.conf se supone que es un enlace simbólico. Si /etc/resolv.conf no es un enlace simbólico, entonces necesita volver a crearlo. Para hacerlo puedes ejecutar

sudo dpkg-reconfigure resolvconf

o

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf        

Hice el cambio sugerido en el siguiente enlace (deshabilitar dnsmasq). Ahora todo funciona muy bien! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html

Abierto /etc/NetworkManager/NetworkManager.conf expediente.

sudo gedit /etc/NetworkManager/NetworkManager.conf

Comente la línea como:

#dnsmasq deactivated
#dns=dnsmasq

EDIT 2: la publicación anterior fue eliminada correctamente por la moderación, estoy publicando lo que he encontrado para ser una solución. Lo siento por eso.

EDITAR: Acabo de encontrar la respuesta y está en esta misma página, lo siento por mi miopía. Publiqué mis hallazgos a continuación, ampliando la respuesta correcta de Richard Lindstedt que se encuentra en esta página. Dejé mi rumor inicial por un poco de contexto. Vote a favor de la respuesta de Richard, se lo merece.

En realidad es muy fácil.

simplemente abra su archivo conf de interfaces –> sudo vi /etc/network/interfaces

Eso seguro no ayudó al OP y no me ayuda ahora. no queremos static direcciones, queremos usar las que nos envía el servidor DHCP. NetworkManager parece reconocerlos, pero Ubuntu los ignora sin rodeos:

# nmcli dev list iface wlan0 | grep IP4.DNS
IP4.DNS[1]:          10.*.*.*
IP4.DNS[2]:          10.*.*.*
IP4.DNS[3]:          8.8.8.8

Pero…

# dig microsoft.com
; <<>> DiG 9.9.5-4.3-Ubuntu <<>> microsoft.com
;; global options: cmd
;; connection timed out; no servers could be reached

Y mi /etc/network/interfaces es:

auto lo
iface lo inet loopback

lo cual es un poco extraño, esperaría que todas las interfaces se declararan aquí (¿o me estoy perdiendo algo?).

Entonces, en resumen:

  • No me metí con ningún archivo para empezar
  • ya he corrido dpkg-reconfigure resolvconf
  • El enlace simbólico correcto está en su lugar
  • NetworkManager recupera los servidores DNS correctos de DHCP
  • Ubuntu NO usa tales direcciones
  • La solución es poner 8.8.8.8 fijo en /etc/network/interfaces QUE NO QUIERO
  • Quiero usar los servidores DNS proporcionados por DHCP en todas y cada una de las situaciones.

No abrir otro hilo porque es el problema exacto, excepto que ahora estoy en 14.10 (pero esto me ha estado molestando desde la actualización de 12.10 a 13.04).

SOLUCIÓN

Esa última frase me puso en el camino correcto, y solo entonces me di cuenta de la respuesta de Richard.

El problema parece estar relacionado con el conflicto dnsmasq y resolvconf paquetes Hasta las 12.10, dnsmasq se utilizó. Desde 13.04 en adelante, Ubuntu pareció cambiar a un híbrido dnsmasq/resolvconf, donde ha instalado los paquetes dnsmasq-base y resolvconfpero no dnsmasq sí mismo.

No puedo decir si es un error en los scripts de actualización para 13.04 o algo más, porque cuando se actualiza (como en las instalaciones nuevas) se instala resolvconf, se actualiza dnsmasq-base y se desinstala (correctamente) dnsmasq.

El problema es que el script de actualización no puede comentar el dns=dnsmasq en linea /etc/NetworkManager/NetworkManager.conf. Entonces, aunque el daemon dnsmasq ya no está presente en el sistema, /etc/resolv.conf todavía espera que lo esté.

Reseñas y valoraciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *