Dnsmasq sendo usado como servidor DNS do servidor quando não deveria ser

2

Eu tenho o nameserver DNS da caixa codificado em / etc / network / interfaces com

dns-nameservers 8.8.8.8

(Eu só preciso acessar o DNS do Google durante o teste, usando outro DNS ao vivo.)

E então eu tenho dnsmasq em execução na caixa para ser um cache DNS, mas também para reescrever algumas entradas DNS para apontar para o Apache como um proxy.

Agora, por algum motivo, não consegui descobrir que a caixa está usando o dnsmasq para seu servidor DNS sempre que o dnsmasq está em execução, apesar de o servidor de nomes DNS também estar definido. Se eu tenho o dnsmasq configurado para escutar em todas as interfaces e em 127.0.0.1, todas as pesquisas passam pelo dnsmasq incluindo aquelas que deveriam ser intermediadas por proxy, de modo que ele seja capturado em um loop em vez de proxied. Se eu usar, não use lo e comente a audição no 127.0.0.1, eu não entendo DNS.

except-interface=lo
#listen-address=127.0.0.1

Não existe regra de iptables nem nada que redirecione todo o tráfego de DNS, permitindo apenas o acesso apenas ao nosso alcance de IP.

Deve haver algo que estou perdendo, mas não consigo entender.

Com o dnsmasq, as escavações desativadas passam pelo DNS definido, com ele ativado, ele passa por 127.0.0.1

Alguma idéia?

    
por marcusds 05.10.2015 / 20:10

1 resposta

3

O script de inicialização no Ubuntu e Debian para o dnsmasq adiciona explicitamente os servidores de nomes ao /etc/resolv.conf ao iniciar ou finalizar o serviço.

Para evitar isso, você precisa editar o / etc / default / dnsmasq (não /etc/dnsmasq.conf) E adicione a linha

 DNSMASQ_EXCEPT=lo

Isso evitará que o dnsmasq se defina automaticamente como o servidor de nomes no resolv.conf, embora ele ainda faça alterações configurando o resolv.conf como

nameserver (your nameserver)
nameserver 127.0.0.1
    
por 06.10.2015 / 21:31

Tags