Después de la actualización a 13.10, mi resolución de DNS falla. Parece que los servidores DNS que obtengo por DHCP (LAN) no se usan.
Podría resolver temporalmente el problema agregando nameserver 8.8.8.8
a /etc/resolv.conf
. Pero los hosts de la intranet aún no se pueden resolver.
Al hacer clic en el elemento del menú Información de conexión en el indicador de red, el DNS primario y el DNS secundario se configuran correctamente. Pero mi computadora parece no usarlos.
Entonces mis preguntas:
- ¿Qué debo poner
resolv.conf
, si es que hay algo? - ¿Cómo averiguar qué servidores de nombres está consultando mi computadora?
- ¿Dónde buscar a continuación para averiguar por qué no se utilizan los servidores de nombres recibidos por DHCP?
network-manager
Witek
fuente
fuente
Respuestas:
Primero necesita saber un poco sobre cómo funciona la resolución de nombres en Ubuntu desde Ubuntu 12.04.
Stéphane Graber blogueó información sobre esto 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
archivo. Eso significa que ya no deberías editar/etc/resolv.conf
directamente; en su lugar, debe configurar su utilidad de configuración de interfaz de red para proporcionar la información correcta para resolvconf. Para Ubuntu Server, la utilidad de configuración de la interfaz de red es ifup y está configurada por el archivo/etc/network/interfaces
. Para Ubuntu Desktop, la utilidad de configuración de la interfaz de red es NetworkManager . Esto es lo que estás usando.NetworkManager se configura mediante el 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 tanto una dirección IP para la interfaz local como 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 solucionador 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 de reenvío del servidor de nombres a través de D-Bus. Puede ver lo que NetworkManager le dijo al servidor de nombres de reenvío ejecutando el comando
Actualización derivada de los comentarios:
tenga en cuenta que resolvconf realmente escribe el archivo
/run/resolvconf/resolv.conf
en el que/etc/resolv.conf
se supone que es un enlace simbólico. Si/etc/resolv.conf
no es un enlace simbólico, debe volver a crearlo. Para hacerlo puedes correro
fuente
sudo dpkg-reconfigure resolvconf
o puede hacermv /etc/resolv.conf /run/resolvconf/resolv.conf && ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo dpkg-reconfigure resolvconf
como se sugiere en la última parte de la respuesta.sudo dpkg-reconfigure resolveconf
parecía funcionar muy bien.Realicé el cambio sugerido en el siguiente enlace (desactivando dnsmasq). ¡Ahora todo funciona muy bien! http://www.ubuntugeek.com/how-to-disable-dnsmasq-in-ubuntu-12-04precise.html
Abrir
/etc/NetworkManager/NetworkManager.conf
archivoComenta la línea como:
fuente
sudo restart network-manager
.sudo /etc/init.d/network-manager restart
dns=default
a la[main]
sección. NetworkManager tiene su propio plugin dnsmasq desagradable que usará de otra manera.network-manager
-sudo service network-manager restart
EDITAR 2: la publicación anterior se eliminó legítimamente por la moderación, estoy publicando lo que he encontrado como una solución. Lo siento por eso.
EDITAR: Acabo de encontrar la respuesta y está en esta misma página, perdón por mi miopy. Publiqué mis hallazgos a continuación, ampliando la respuesta correcta de Richard Lindstedt que se encuentra en esta página. Dejé mis retumbos tempranos por un poco de contexto. Vota la respuesta de Richard, se lo merece.
Eso seguro no ayudó al OP y no me ayuda ahora. No queremos direcciones estáticas, queremos usar las que nos envía el servidor DHCP. NetworkManager parece reconocerlos, pero Ubuntu los ignora sin rodeos:
Pero...
Y mi / etc / network / interfaces es:
lo cual es un poco extraño, esperaría que todas las interfaces se declaren aquí (¿o me falta algo?).
Entonces, en resumen:
dpkg-reconfigure resolvconf
No abro 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 llevó por el buen camino, y solo entonces noté la respuesta de Richard.
El problema parece estar relacionado con los conflictos
dnsmasq
y losresolvconf
paquetes. Hasta las 12.10,dnsmasq
se utilizó. A partir del 13.04 en adelante, Ubuntu pareció cambiar a un híbrido dnsmasq / resolvconf, donde instaló los paquetesdnsmasq-base
yresolvconf
, pero no adnsmasq
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 nuevas instalaciones) resolvconf se instala, se actualiza dnsmasq-base y se desinstala (correctamente) dnsmasq.
El problema es que el script de actualización no puede comentar la
dns=dnsmasq
línea/etc/NetworkManager/NetworkManager.conf
. Entonces, aunque el demonio dnsmasq ya no está presente en el sistema, /etc/resolv.conf todavía espera que lo esté.fuente
dnsmasq
ednsmasq-base
instaló, NM se colocará127.0.0.1
en/etc/resolv.conf
lugar de127.0.1.1
. Simplemente desinstalédnsmasq
(y habilité NM) y todo funciona bien.sudo service network-manager restart
para que esto surta efecto.En realidad es muy fácil.
simplemente abra el archivo conf de sus interfaces -> sudo vi / etc / network / interfaces
y debajo de su interfaz (probablemente eth0) verá toda la configuración habitual.
Después de la puerta de enlace, simplemente agregue 'dns-nameservers 8.8.8.8 8.8.8.9' o cualquier servidor de nombres que vaya a utilizar.
Entonces su configuración debería ser:
entonces solo haz un 'reinicio de la red del servicio sudo' y listo.
fuente