Estoy ejecutando Debian Jessie y estoy tratando de configurar dnsmasq como un servidor DNS de almacenamiento en caché. Usé una guía para llegar a lo siguiente /etc/dnsmasq.conf:
listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll
Hacer sudo service dnsmasq restartfalla y no comenzará, diciéndome
Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.
Ok, es extraño que una configuración sacada de una guía haya fallado. Simplemente eliminaré la no-pollopción para ver si funciona. Esta vez comienza bien, pero la resolución de DNS está fallando claramente. Archivos Relevantes:
/etc/resolv.conf:
nameserver 127.0.0.1
/etc/resolv.dnsmasq:
nameserver 8.8.8.8
/var/run/dnsmasq/resolv.conf:
nameserver 127.0.0.1
El tercer archivo parece ser el archivo resolv.conf en vivo de dnsmasq, porque agregarle una línea de servidor de nombres mientras dnsmasq ya se está ejecutando hace que la resolución DNS comience a funcionar de inmediato. Entonces parece que ignoró mi /etc/resolv.dnsmasq. También intenté agregar una línea de servidor de nombres a mi /etc/resolv.confy eliminar la resolv-filelínea /etc/dnsmasq.conf, pero se sobrescribe inmediatamente a lo que ves arriba al hacer sudo service dnsmasq restart.
¿Qué está pasando con dnsmasq y configuro dnsmasq como un servidor DNS de almacenamiento en caché?

server=8.8.8.8tu configuración dnsmasq?no-pollbásicamente dice ignorar elresolv-file. Al inicio, toma el archivo que sea más nuevo, por lo que será/etc/resolv.confen su caso (porque se reescribe cuando algo cambia).Respuestas:
Parece que hay un error en el script de inicio
dnsmasqque se utilizaresolvconfpara bloquear el solucionador local si la interfaz de bucle de retorno local no está explícitamenteexcepten el/etc/defaults/dnsmasqarchivo.La respuesta corta es que puedes agregar ...
para
/etc/defaults/dnsmasqresolver el problemaPara más información, vea esta pregunta ...
/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp
fuente
bigjosh tiene razón, excepto que ha habido una actualización de dnsmasq, y ahora hay una opción al final de la
/etc/default/dnsmasqcual puedes quitar el hash:fuente
/etc/defaults/dnsmasqteníaIGNORE_RESOLVECONF=yesinstrucciones para descomentarlo para resolver este problema, lo que no hizo.No usar
Ponga el servidor dns en dnsmasq.conf, como
Y agregar a dnsmasq.conf
fuente
Si lo que desea es un servidor DNS sólo de caché y nada más elegante que dnsmasq puede hacer, sería mejor instalar cualquiera
lwresdounboundy utilizando la configuración de valores por defecto que le da un servidor DNS de sólo caché. Luego simplemente configuras el/etc/resolv.conf"servidor de nombres 127.0.0.1" y listo.Lo bueno es que estos dos paquetes no se meten con lo que hay en
/etc/resolv.confdnsmasq y, por lo tanto, es una solución más limpia en mi humilde opinión. Por lo general, también puede eliminar elresolvconfpaquete para que no se pierda nada/etc/resolv.conf.Para su información, dnsmasq se ha vuelto bastante complicado, demasiadas campanas y silbatos y ya solo está causando dolor a la mayoría de las personas. Viola KISS en mi libro.
fuente
dnsmasq-base, comonetwork-managerylibvirt-bin(si está haciendo KVM), por lo que no siempre es posible deshacerse de él por completo. En ese caso, puede eliminarlo/usr/sbin/dnsmaqy convertirlo en un enlace rígido/bin/truepara que siempre tenga éxito (para engañar al guión de inicio) Luego,chattr +i /usr/sbin/dnsmasqpara evitar que se actualice. He tenido que hacer esto en varias computadoras portátiles.