Estou executando o Debian Jessie e estou tentando configurar o dnsmasq como um servidor DNS em cache. Usei um guia para criar o seguinte /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
Fazer sudo service dnsmasq restart
falha e não vai começar, me dizendo
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, meio estranho que uma configuração diretamente de um guia falhou. Vou apenas remover a no-poll
opção para ver se funciona. Desta vez, tudo começa bem, mas a resolução do DNS está claramente falhando. Arquivos 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
O terceiro arquivo parece ser o arquivo resolv.conf ativo do dnsmasq, porque adicionar uma linha de servidor de nomes a ele enquanto o dnsmasq já está sendo executado faz com que a resolução do DNS comece a funcionar imediatamente. Então parece que ignorou o meu /etc/resolv.dnsmasq
. Eu também tentei adicionar uma linha de servidor de nomes para o meu /etc/resolv.conf
e removendo a resolv-file
linha /etc/dnsmasq.conf
, mas ele fica overwritted imediatamente para o que você vê acima em cima de fazer sudo service dnsmasq restart
.
O que está acontecendo com o dnsmasq e eu configuro o dnsmasq como um servidor DNS em cache?
server=8.8.8.8
sua configuração do dnsmasq?no-poll
basicamente diz para ignorar oresolv-file
. Na inicialização, é necessário o arquivo que for mais recente, o que acontecerá/etc/resolv.conf
no seu caso (porque ele é reescrito quando algo muda).Respostas:
Parece haver um bug no script de inicialização
dnsmasq
usadoresolvconf
para impedir o resolvedor local, se a interface de loopback local não estiver explicitamenteexcept
inserida no/etc/defaults/dnsmasq
arquivo.A resposta curta é que você pode adicionar ...
para
/etc/defaults/dnsmasq
resolver o problema.Para mais informações, consulte esta pergunta ...
/raspberrypi/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp
fonte
bigjosh está certo - exceto que houve uma atualização para o dnsmasq e agora existe uma opção no final da
/etc/default/dnsmasq
qual você pode descompactar:fonte
/etc/defaults/dnsmasq
teveIGNORE_RESOLVECONF=yes
com instruções para remover o comentário-lo para resolver esta questão, o que não fez.Não use
Coloque o servidor DNS no dnsmasq.conf, como
E adicione no dnsmasq.conf
fonte
Se você deseja apenas um servidor DNS somente em cache e nada mais imagina que o dnsmasq possa fazer, é melhor instalar um
lwresd
ouunbound
usar a configuração padrão de estoque que fornece um servidor DNS somente em cache. Então você acabou/etc/resolv.conf
de usar o "nameserver 127.0.0.1" e pronto.O bom é que esses dois pacotes não mexem com o que o
/etc/resolv.conf
dnsmasq faz e, portanto, é uma solução IMHO mais limpa. Você também pode remover oresolvconf
pacote para não mexer com nada/etc/resolv.conf
.Para sua informação, o dnsmasq se tornou bastante complicado, muitos sinos e assobios e está causando mais dor à maioria das pessoas. Viola o KISS no meu livro.
fonte
dnsmasq-base
, comonetwork-manager
elibvirt-bin
(se você estiver executando o KVM), portanto nem sempre é possível se livrar completamente dele. Nesse caso, você pode excluir/usr/sbin/dnsmaq
e torná-lo um link físico para/bin/true
sempre ter sucesso (para enganar o script init). Depois,chattr +i /usr/sbin/dnsmasq
para impedir que seja atualizado. Eu tive que fazer isso em vários laptops.