¿Por qué tuve que eliminar resolvconf para que dnsmasq volviera a funcionar?

8

Ayer me actualicé a Precise y dnsmasq dejó de funcionar. Es decir, se rechazaron las consultas de DNS a localhost donde dnsmasq está escuchando (127.0.0.1).

Eliminar resolvconf ( apt-get remove resolvconf) y reiniciar resolvió el problema (encontré esa sugerencia en algún lugar de Google). /etc/resolv.confse veía bien con y sin resolvconf en su lugar. No hay diferencia en absoluto.

  1. ¿Por qué usaría resolvconf? ¿Hay algún beneficio? El artículo de Wikipedia que cubre resolvconf apesta.
  2. ¿Por qué resolvconf interfiere con dnsmasq? ¿Es este un problema conocido?
lightxx
fuente
bla @ blubb: ~ $ [-f /usr/share/doc/resolvconf/README.gz] && echo "Encontrado" || echo "No encontrado" No encontrado um. sabelotodo.
lightxx

Respuestas:

10

La respuesta simple a (1) es: resolvconf se configura como el intermediario entre los programas que proporcionan esta información (como ifup y ifdown, clientes DHCP, el demonio PPP y servidores de nombres locales) y los programas que usan esta información (como DNS cachés y bibliotecas de resolución). A partir de Ubuntu 12.04, resolvconf es parte de la instalación predeterminada tanto en el servidor como en las variantes de escritorio. Nunca es necesario eliminar resolvconf y las personas que lo eliminan generalmente no lo entienden, generalmente porque no han leído resolvconf (8) y /usr/share/doc/resolvconf/README.gz.

La respuesta a la segunda pregunta es que resolvconf probablemente no interfirió con dnsmasq. Supongo que te estabas encontrando con el error # 959037.

Explicación: En Ubuntu 12.04 hay dos formas en que se ejecuta dnsmasq. Existe la versión tradicional independiente de dnsmasq que escucha en todas las direcciones. Y está el nuevo proceso dnsmasq controlado por NetworkManager que solo escucha en 127.0.0.1. El último entra en conflicto con el primero a menos que el primero se reconfigure. Este problema se resolvió en Ubuntu 12.10 haciendo que el proceso dnsmasq controlado por NM escuche en 127.0.1.1 en lugar de 127.0.0.1 y forzando al proceso dnsmasq independiente a escuchar solo en las direcciones asignadas a las interfaces.

jdthood
fuente
He leído la página de administración y todavía no puedo encontrar una manera confiable de anteponer mis propios servidores de nombres resolv.conf.
Michael Mior
Con resolvconf instalado, puede anteponer una dirección de servidor de nombres nameserver x.x.x.xingresando /etc/resolvconf/resolv.conf.d/head. Sin embargo, tenga en cuenta que esto generalmente no es necesario ni recomendado. Generalmente hay una forma más correcta de agregar líneas de "servidor de nombres" a resolv.conf. En general, la utilidad que configura una interfaz de red agrega o elimina las direcciones de servidor de nombres disponibles a través de esa interfaz ejecutando resolvconf -ao resolvconf -d, respectivamente. La priorización de las direcciones de servidor de nombres agregadas de esta manera se rige por /etc/resolvconf/interface-order.
jdthood
En realidad, al headagregar una línea de servidor de nombres se agrega DESPUÉS del servidor de nombres predeterminado.
Michael Mior
No lo he probado, pero parece que echo x.x.x.x | resolvconf -a losería el truco para agregar un servidor de nombres que me gustaría ser el primero para todas las interfaces.
Michael Mior
Resolvconf siempre pone el contenido de headal principio (arriba, al principio) de resolv.conf.
jdthood
2

Lo acabo de eliminar en mi instalación. Estaba usando pppd manualmente para marcar mi conexión de módem 3G y resolvconf interfirió con la configuración de mi dns al agregar automáticamente el DNS de mi proveedor cuando quería usar DNS personalizado. pppd tiene opciones para controlar esto, pero resolvconf los superó con su propia configuración. También me gustaría saber la respuesta a esta pregunta? ¿Parece que este es un tipo de paquete que hace que sea más fácil pero en cambio complica las cosas?

PD: He encontrado este informe de error: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578

Marko
fuente
Gracias por tu contribución. Lo hubiera votado pero me falta el representante.
lightxx
@lightxx: Votado por ti;)
Tomasz Zieliński
En lugar de eliminar resolvconf, podría haber configurado resolvconf para ignorar la información del servidor de nombres proveniente de pppd.
jdthood
El contenido normal de resolv.conf es bastante simple. Siempre que la máquina sea un servidor o incluso una estación de trabajo que no sea portátil, parece obviamente más fácil rastrear el único resolv.conf en lugar de la media docena de archivos diferentes potencialmente utilizados por resolvconf.
ericx
@jdthood: no veo cómo hacer esto en la página del manual resolvconf.conf, me interesarían los detalles de implementación.
dps
1

La respuesta simple a (1) es: resolvconf se configura como el intermediario entre los programas que proporcionan esta información (como ifup y ifdown, clientes DHCP, el demonio PPP y servidores de nombres locales) y los programas que usan esta información (como DNS cachés y bibliotecas de resolución).

Eso es de la descripción del paquete. En los equipos de escritorio, funciona en conjunto con NetworkManager para manejar la creación y caída de conexiones sin problemas.

Entonces resolvconf, junto con dnsmasq, se usan en 12.04 para hacer que el manejo de información de DNS sea más confiable en la versión de escritorio. Entonces, en algunas situaciones, mejora las cosas, pero toda la situación carece de la documentación en el lugar correcto, especialmente. en el mundo del servidor

A pesar de la gran cantidad de búsquedas en Google, no he podido determinar qué se recomienda en la instalación de un servidor.

En cuanto a (2), tienes el problema opuesto de mí. Dnsmasq funciona bien con resolvconf en mi máquina y actualiza el archivo /etc/resolv.conf para contener 127.0.0.1 pero tiene otros problemas porque dnsmasq no obtiene los servidores de nombres de ISP de dhclient en eth0 (esta es una puerta de enlace) ni obtener los servidores de nombres que ingresé manualmente en la estrofa eth0 en / etc / network / interfaces.

¿Por qué usas dnsmasq? ¿También estás ejecutando una puerta de enlace con 2 nics? ¿O es solo un escritorio simple? Si es así, resolvconf se coordina con el administrador de red

Adán
fuente
gracias por tu respuesta. Lo hubiera votado, desafortunadamente necesitas 15 reputación para votar. lol
lightxx
1
Las páginas man son geniales cuando sabes lo que necesitas saber. Si no lo haces, pueden ser desconcertantes por decir lo menos. Los procedimientos, ejemplos y preguntas frecuentes son lo que necesita cuando no tiene experiencia en un área.
Adam
votó a favor @lightxx en su nombre :)
fkl