我对NATed网络中的情况感到困惑。我在路由器上启动dnsmasq
,DNS端口使用listen-address=192.168.100.1
和-p 5353
选项。之后,我为该网络内的主机添加了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
的帮助下发现了这个地址,当NATed主机尝试解析主机名时,我看到数据包丢失了SRC=127.0.0.1 DST=127.0.0.53 ...
。
当我编写自动脚本以生成正确的netfilter规则时,我需要知道 127.0.0.53 可能来自哪里。
我在/etc/resolv.conf
中看到了相同的地址。但是我不明白,当这个数据包被重定向时,是谁将这个数据包路由到这个地址,如果即使接近理解会发生什么也是如此。
答案 0 :(得分:1)
systemd-resolved在127.0.0.53:53本地为dns请求设置存根侦听器
尝试禁用它以继续sudo systemctl disable systemd-resolved