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 restart
falla 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-poll
opció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.conf
y eliminar la resolv-file
lí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.8
tu configuración dnsmasq?no-poll
básicamente dice ignorar elresolv-file
. Al inicio, toma el archivo que sea más nuevo, por lo que será/etc/resolv.conf
en su caso (porque se reescribe cuando algo cambia).Respuestas:
Parece que hay un error en el script de inicio
dnsmasq
que se utilizaresolvconf
para bloquear el solucionador local si la interfaz de bucle de retorno local no está explícitamenteexcept
en el/etc/defaults/dnsmasq
archivo.La respuesta corta es que puedes agregar ...
para
/etc/defaults/dnsmasq
resolver 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/dnsmasq
cual puedes quitar el hash:fuente
/etc/defaults/dnsmasq
teníaIGNORE_RESOLVECONF=yes
instrucciones 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
lwresd
ounbound
y 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.conf
dnsmasq y, por lo tanto, es una solución más limpia en mi humilde opinión. Por lo general, también puede eliminar elresolvconf
paquete 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-manager
ylibvirt-bin
(si está haciendo KVM), por lo que no siempre es posible deshacerse de él por completo. En ese caso, puede eliminarlo/usr/sbin/dnsmaq
y convertirlo en un enlace rígido/bin/true
para que siempre tenga éxito (para engañar al guión de inicio) Luego,chattr +i /usr/sbin/dnsmasq
para evitar que se actualice. He tenido que hacer esto en varias computadoras portátiles.