Dnsmasq no se inicia en el arranque del sistema
Dnsmasq no se inicia en el arranque del sistema
Hola hace unas semanas que vengo sufriendo este problema en Debian Testing amd64. Cuando inicio el sistema obtengo el siguiente error:
Failed to start dnsmasq - A Lightweight DCHP and caching DNS Server.
See 'Systemctl status dnsmasq,service' for details
Dependency failed for Host and Network Name Lookups
Por lo tanto al iniciar el ordenador no se resuelven las peticiones DNS y de este modo no puedo usar la combinación DNSCrypt + dnsmasq. Para solucionar el problema lo que hago es arrancar dnsmasq de forma manual cada vez que inicio el sistema, pero el tema que es deberia arrancar de forma automática en el inicio.
Lo curioso del asunto es que a veces obtenigo el error y a veces no. Lo que estoy contando no pasa el 100% de veces que arranco el ordeandor. Intuyo que en este caso SystemD estará haciendo de las suyas. ¿Alguién sabe como puede solucionar este problema?
Hola, luego que inicies el sistema que te tira si ejecutas:
systemctl
status dnsmasq.service
?También podrías postear que sale si ejecutas
journalctl -b -p err
?Me da la impresión que dnsmasq inicia en el arranque y que tu problema esta por el lado de la configuración
PD: cuando cites código seria bueno que utilices la etiqueta "insertar fragmento de código" para que sea mas legible![smiley smiley]()
saludos...
Hola Gracias por contestar. Felicitaciones por este nuevo sitio. Luce excelente.
Los resultados de los comandos son los sigueintes:
Por lo que veo podría no tratarse de un problema con systemd y el servicio de dnsmasq, sino que la falla estaría en que dnsmasq no encuentra o no puede resolver al archivo resolv.conf o el contenido, por lo que no estaría demás que comentes que configuraste en /etc/resolv.conf
directory /etc/resolv.conf for resolv-file is missing, cannot poll
El otro tema que me llama la atención es el error que tira NetworkManager. ¿te estas conectando via wifi? de ser asi ¿probaste si sucede el error en dnsmasq si te conectas via lan?
Porque podría ser que NetworkManager esté fallando durante el inicio y eso haga que se produzca el error en dnsmasq
PD: gracias por lo del sitio
saludos ...
Buenas,
El contenido del fichero /etc/resolv.conf es el siguiente:
# Generated by NetworkManager
nameserver 127.0.0.1
El contenido de este fichero diria que no es el problema porque no es algo que me suceda siempre. A veces arranco el ordenador y obtengo el error. A veces arranco el ordenador y todo va perfecto.
Efectivamente me conecto con una torre via wifi. Actualmente no tengo posibilidad de conectarme via LAN. Mañana buscar un cable sufcientemente largo para realizar la prueba y reportaré el resultado.
dnsmasq tiene algún conflicto con dnscrypt, que yo recuerde, pero no encuentro ahora info al respecto (me hago mayor xD)
De todas formas, ¿Cuando eso te ocurre has comprobado que dnscrypt funciona como es debido? Yo he tenido algún que otro problemilla con dnscrypt (no uso dnsmasq) y redundancias ciclicas al inicio del mismo por culpa de dnscrypt-proxy.socket, las cuales se arreglan editando el archivo /lib/systemd/system/dnscrypt-proxy.socket eliminando de él la línea que dice After= (o Before, no recuerdo ahora) y reiniciando el servicio.
Por otro lado, desconociendo el funcionamiento de dnsmasq, el contenido de mi resolv.conf no es el mismo que el tuyo, usando dnscrypt en debian debería ser (al menos en mi caso lo es) 127.0.2.1, aunque imagino que dnsmasq cambie eso (por cierto, el archivo /etc/resolv.conf ahora es un enlace a /var/run/NetworkManager/resolv.conf, comprueba que eso es correcto también).
También me atrevería a decir que el error que aparece acerca de la wlan no tiene nada que ver, ya que solo trata de que no puede cambiar la gestión de energía, cosa que se puede tratar en otro hilo en cuanto soluciones esto.
Edit.... ¿Podrías poner los archivos de configuración de dnsmasq y dnscrypt-procy? Hay que hacer un pequeño cambio para que ambos puedan trabajar juntos. Mientras puedo intentar buscarlos, me suena que en la wiki de Arch estaba, haciendo alguna adaptación al sistema de Debian, como configurar ambos para trabajar conjuntamente sin problemas.
Hola Buenas, Abajo iré respondiendo una por una las preguntas:
1- Con el comando dig he comprobado que dnsmasq funciona a la perfección.
2- El fichero de la ubicación /etc/resolv.cong tiene el mismo contenido que el fichero /var/run//NetworkManager/resolv.conf. De heco /etc/resolv.conf es una enlace simbólico.
3- Los archivos de configuración de Dnscrypt y dnsmasq son los siguientes:
/etc/systemd/system/sockets.target.wants/dnscrypt-proxy.socket
/etc/default/dnscrypt-proxy
/etc/dnsmasq.conf
Saludos
Creo que ya he encontrado el problema. El contenido de /etc/resolv.conf es erroneo. Tiene que ser 127.0.2.1
Lo he arreglado y al menos la primera vez después de cambiar esto se ha arreglado. Es muy raro que el servidor de DNS que indico a través de Networkmanafer se haya cambiado solo de 127.0.2.1 a 127.0.0.1. Estoy segurissimo que en su dia lo configure correctamente y nunca más he vuelto a cambiar este valor. En fin... parece que este problema ahora está resuelto. Dejaré pasar un día o dos y pondré el hilo como solucionado.
Ahora me queda la duda si intentar averiguar que pasa con el resto de errores... Los otros errores no me dan problema alguno... por lo tanto creo que los dejaré tal cual...
Gracias por todo.
Comprueba que funciona todo correctamente con esa configuración. Ya que colocando eso en resolvconf, el sistema usará dnscrypt-proxy para las busquedas dns, e imagino que si usas dnsmasq es para que pase todo a través de él, por lo que diría que con las dns de dnscrypt, no está usando dnsmasq (que alguien me corrija si me equivoco).
Edit...
Mirando por ahí he visto que si, que dnsmasq tiene que estar configurado con la misma ip que use dnscrypt-proxy, en lo unico que tienen conflicto es con el puerto.
Hola, El error no está resuelto.
Además la configuración es incorrecta. De la forma que he configurado dnsmasq no trabaja. Solo trabaja dnscrypt. Aunque solo trabaje DNScrypt... dnsmasq en algunas ocasiones sigue sin arrancar.
La configuración que tenia ya era correcta... ya que dnsmasq escucha a dnscrypt y como servidor local de DNS tengo puesto el servidor local (127.0.0.1). De esta forma fucniona seguro y ademas los resultados obtenidos con Dig lo demuestran.
Entiendo que configurado de esta forma, la primera vez que se resuelve un dominio el trabajo lo realiza dnscrypt, el trabajo realizado por dnscrypt queda almacenado en la memoria RAM por dnsmasq y lo almacenado actua como servidor DNS y se utiliza en el caso que hagamos una misma petición al mismo dominio. Cuando se reinicia el ordenador todo el cache DNS se pierde al estar almacenado en una memoria volátil.
Saludos
Aquí dejo una muestra de como funciona:
El funcionamiento y la configuración es correcta. El problema es que a veces falla. Aunque no me guste la idea una cosa que podria probar es levantar dnsmasq a través de Networkmanager (configurando el networkmanager.conf). Pero esto implica que tengo que hacerdebian/systemd no arranque dnsmasq.... y ahora mismo no caigo como hacerlo.
Para evitar que un servicio inicie
Quizá esta guia te pueda ayudar
la configuración en realidad puede ser cualquiera mientras hayas configurado correctamente ambos servicios. Tanto dnscrypt como dnsmasq pueden usar la misma ip mientras la configuración sea correcta:
El problema te vendrá de otra parte, ya que no es lo mismo que no funcione que que no inicie el servicio.
Para buscar mas motivos, deberías mirar tanto el apagado como el inicio del sistema, no sea que tengas algún servicio que provoque que no se pueda iniciar otro (como comenté con el asunto de dnscrypt-proxy.sockets que me daba error, lo que provocaba que a veces systemd eliminara cosas del inicio para evitar conflictos). Puedes filtrar logs "a pelo" usando journalctl |grep deleted (deleted, removed, job, break, lo que quieras) para así descartar que no haya algo que provoque que dnsmasq no levante a veces...
Ver este enlace:
Parece que se trata de un bug. Tengo la versión 2.75-1... que es la que se menciona en el enlace que genera problemas. Ahora solo toca esperar a la actualización.
Saludos y gracias por todo!!
Vaya, pues mira que estuve mirando y no lo vi xD
Viendo ese reporte de bug, puedes solucionarlo añadiendo --resolv-file= al comando que ejecuta dnsmasq al inicio. Como siempre, no lo tengo instalado, pero imagino será /lib/systemd/system/dnsmasq.service posiblemente... Échale un vistazo si quieres y te atreves a trastear con esas cosas... Puesto que si vas a esperar a que se fixee el bug, ya te voy diciendo que en Sid está la misma versión, y no hay otra en experimental.
la ruta es exactamente la que mencionas.
He probado de realizar la modificar la siguiente parte sin éxito:
he probado ;
y otras combinaciones pero nada...
Tocará esperar a la actualización, y si me cansa arrancarlo manualmente diria que añadiendo systemctl start dnsmasq.service en /etc/rc.local dnsmaq deberia iniciar.
Saludos y gracias
Pues parece que es más complicado, ya que aun usando systemd. dnsmasq usa /etc/init.d/dnsmasq para iniciar, así que esas modificaciones no sirven...
Te va a tocar esperar o mirar como modifcar esa parte, y visto que te funciona y no te lo hace siempre, vale la pena quedarse como estás.