Меня смущает ситуация в моей сети с NAT. Я запускаю dnsmasq
на маршрутизаторе с параметрами listen-address=192.168.100.1
и -p 5353
для порта DNS. После этого я добавляю правило iptables для хостов внутри этой сети:
iptables -t nat -I PREROUTING -s 192.168.100.0/24 \
-d 192.168.100.1 -p udp --dport 53 -j REDIRECT --to-ports 5353
Но это не сработало в первый раз, так как моя INPUT
политика DROP
: когда я добавляю это правило, все начинает работать:
iptables -I INPUT -p udp --dport 53 -d 127.0.0.53 -j ACCEPT
Я обнаружил этот адрес с помощью -j LOG
в своей цепочке INPUT
, где я видел, как пакеты, подобные SRC=127.0.0.1 DST=127.0.0.53 ...
, отбрасывались, когда хост с NAT пытался разрешить имя хоста.
Поскольку я пишу автоматический скрипт, который генерирует правильные правила сетевого фильтра для ситуации, мне нужно знать, откуда может взяться этот 127.0.0.53.
Я вижу тот же адрес в /etc/resolv.conf
. Но я не понимаю, кто маршрутизирует этот пакет на этот адрес, когда он «перенаправлен», если даже близко к пониманию того, что происходит.