Dnsmasq se utiliza como servidor DNS del servidor cuando no debería serlo

Dnsmasq se utiliza como servidor DNS del servidor cuando no debería serlo

Tengo el servidor de nombres DNS de la caja codificado en /etc/network/interfaces con

dns-nameservers 8.8.8.8

(Solo tengo que buscar DNS en Google durante la prueba, usando otro DNS en vivo).

Y luego tengo dnsmasq ejecutándose en el cuadro para que sea un caché de DNS, pero también para reescribir algunas entradas de DNS para que apunten a Apache como proxy.

Ahora, por alguna razón, no he podido descubrir que el cuadro está usando dnsmasq para su servidor DNS cada vez que dnsmasq se está ejecutando, a pesar de que el servidor de nombres DNS también esté configurado. Si tengo dnsmasq configurado para escuchar en todas las interfaces y 127.0.0.1, todas las búsquedas simplemente pasan por dnsmasq, incluidas las que se supone que son proxy, por lo que quedan atrapadas en un bucle en lugar de proxy. Si uso no uso lo y comento escuchando en 127.0.0.1, no obtengo ningún DNS.

except-interface=lo
#listen-address=127.0.0.1

No existe una regla de iptables ni nada que redirija todo el tráfico DNS, solo permite el acceso a nuestro rango de IP.

Debe haber algo que me falta, pero no puedo entenderlo.

Con dnsmasq deshabilitado, pasa por el DNS configurado, con él habilitado pasa por 127.0.0.1

¿Algunas ideas?

Respuesta1

El script de inicio en Ubuntu y Debian para dnsmasq agrega explícitamente los servidores de nombres a /etc/resolv.conf al iniciar o finalizar el servicio.

Para evitar esto, necesita editar /etc/default/dnsmasq (no /etc/dnsmasq.conf) y agregar la línea

 DNSMASQ_EXCEPT=lo

Esto evitará que dnsmasq se establezca automáticamente como servidor de nombres en resolv.conf, aunque seguirá realizando cambios al configurar resolv.conf como

nameserver (your nameserver)
nameserver 127.0.0.1

información relacionada