Estou tentando criar um mecanismo de bloqueio de anúncios no servidor por meio do dnsmasq, mas só obtenho resultados no próprio servidor, não nos computadores conectados à minha rede local.
Primeiro de tudo, meu roteador é o servidor DNS padrão, então tenho que configurar todos os meus dispositivos para usar o servidor dnsmasq como DNS primário. Posso verificar se funciona quando tento acessar um dos meus sites auto-hospedados: se eu puder acessá-los localmente, o dnsmasq dns funciona. Neste aspecto, está tudo bem.
Depois, a parte do bloqueio de anúncios. Eu verifico se o bloqueio funciona digitando este comando no meu servidor e no meu computador principal:
# nslookup doubleclick.net
No servidor eu recebo:
Server: 192.168.1.51
Address: 192.168.1.51#53
Name: doubleclick.net
Address: 192.168.1.51
Então funciona aí.
No meu computador eu recebo:
Server: 80.67.0.2
Address: 80.67.0.2#53
Non-authoritative answer:
Name: doubleclick.net
Address: 70.32.146.212
Então aqui não...
Minha configuração é assim:
Eu configurei o diretório de configuração do dnsmasq:
conf-dir=/usr/local/etc/dnsmasq.d
Coloque o arquivo dnsmasq.adlist.conf preenchido por um script que busca uma lista de servidores de anúncios de um site e os compila em entradas legíveis do dnsmasq.
Então, para resumir, os domínios bloqueados pelo dnsmasq são redirecionados corretamente de dentro do servidor, mas não de outros dispositivos. É como se o dnsmasq não conseguisse transmitir a lista de domínios recém-adicionada.
Posso fornecer qualquer informação que você desejar para me ajudar a resolver esse problema. Também pode apontar para uma configuração incorreta anterior a este experimento de bloqueio de anúncios. De qualquer forma, espero que isso seja fácil de entender ...
Meu servidor está no FreeBSD 9.3
Responder1
O problema pode acontecer se algo armazenar em cache sua solicitação e você não liberar o cache DNS.
Freqüentemente, o sistema operacional armazena em cache as entradas DNS, o que faz com que as alterações no DNS não sejam vistas diretamente.
Para o Windows fe, você pode limpar o cache DNS com algo como.
ipconfig /flushdns
Responder2
Não uso o nslookup há algum tempo, mas esse resultado não significa que a resolução do nome foi executada em 80.67.0.2 e não em 192.168.1.51 (que presumo ser o seu roteador)?
Eu acho que de alguma forma o seu computador não está usando a instância do dnsmasq para fazer a resolução de nomes.