На моем маршрутизаторе с OpenWRT я использую dnsmasq для отравления DNS, чтобы заблокировать рекламу. Если хост находится в списке, маршрутизатор отвечает на запрос DNS с 192.168.99.99, который только и всегда предоставляет прозрачный gif 1x1 (метод pixelserv).
Однако локальные устройства могут обойти это, напрямую используя свой DNS-сервер. Как я могу перенаправить эти DNS-запросы, чтобы реклама была заблокирована? ,
Я пробовал такие команды (8.8.8.8 и 8.8.4.4 - это DNS-серверы, 192.168.1.102 - исходное устройство, 192.168.1.1 - IP-адрес моего маршрутизатора):
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
Я попытался добавить добавление правила трафика через административную панель OpenWrt -> Source NAT, сопоставив «Любой TCP, UDP с IP 192.168.1.102 в локальной сети. К любому хосту, порт 53 в локальной сети», с действием «Переписать в исходный IP 192.168.1.1». порт 53 ". Я считаю, что это выполняется в iptables в любом случае.
Но я считаю, что DNS-запросы все еще разрешаются:
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)
Может быть, совершенно другой метод, например, через dnsmasq, будет работать? Я не мог найти это, однако.
(Я нашел какое-то объяснение о том, как перенаправить на другой удаленный DNS-сервер, но это мне здесь не поможет. Это в основном для разблокировки регионов или для томатов или DD-WRT. Также это тесно связано с моим предыдущим вопросом)