No meu roteador com OpenWRT, eu uso dnsmasq para envenenamento de DNS para bloquear anúncios. Se o host estiver na lista, o roteador responderá à solicitação de DNS com 192.168.99.99, que apenas e sempre exibirá um gif transparente de 1x1 (o método pixelserv).
No entanto, os dispositivos locais podem ignorar isso usando diretamente seu próprio servidor DNS. Como posso redirecionar essas solicitações de DNS para que os anúncios sejam bloqueados? .
Eu tentei comandos como estes (8.8.8.8 e 8.8.4.4 sendo os servidores DNS, 192.168.1.102 o dispositivo de origem, 192.168.1.1 o IP do meu roteador):
iptables -t nat -A PREROUTING -d 8.8.8.8 -j DNAT --to-destination 192.168.1.1
iptables -t nat -A PREROUTING -d 8.8.4.4 -j DNAT --to-destination 192.168.1.1
# or:
iptables -t nat -A PREROUTING -i wlan0 -s 192.168.1.102 -p udp --dport 53 -j REDIRECT --to-port 53
iptables -t nat -A PREROUTING -i wlan0 -s 192.168.1.102 -p tcp --dport 53 -j REDIRECT --to-post 53
Eu tentei adicionar adicionando uma regra de tráfego através do painel de administração do OpenWrt - > NAT de origem, correspondente a "Qualquer TCP, UDP do IP 192.168.1.102 no lan Para qualquer host, porta 53 no lan", com ação "Regravar para o IP de origem 192.168.1.1, porta 53". Eu acredito que isso também é efetuado no iptables.
Mas acho que as consultas do DNS ainda estão sendo resolvidas:
root@OpenWrt:~# tcpdump -vvv -i wlan0 port 53
Chromecast.lan.42591 > google-public-dns-a.google.com.domain: [udp sum ok] 57897+ A? pubads.g.doubleclick.net. (42)
google-public-dns-a.google.com.domain > Chromecast.lan.42591: [udp sum ok] 57897 q: A? pubads.g.doubleclick.net. 5/0/0 pubads.g.doubleclick.net. [5h59m59s] CNAME partnerad.l.doubleclick.net., partnerad.l.doubleclick.net. [4m59s] A 74.125.136.157, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.156, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.155, partnerad.l.doubleclick.net. [4m59s] A 74.125.136.154 (132)
Talvez um método completamente diferente, por exemplo, através do dnsmasq, funcionasse? Eu não consegui encontrar isso, no entanto.
(Eu encontrei algumas explicações sobre como redirecionar para outro servidor DNS remoto, mas isso não vai me ajudar aqui. É principalmente para ou para Tomato ou DD-WRT Além disso, isso está intimamente relacionado à minha pergunta anterior )