为什么我在 -j REDIRECTed 数据包上看到 DST="127.0.0.53"?
Why i see DST="127.0.0.53" on -j REDIRECTed packets?
我对 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
我在 INPUT
链上 -j LOG
的帮助下发现了这个地址,当 NATed 主机试图解析主机名时,我看到数据包像 SRC=127.0.0.1 DST=127.0.0.53 ...
一样被丢弃。
因为我正在编写生成正确的 netfilter 规则的自动脚本,所以我需要知道这个 127.0.0.53 可能来自哪里。
我在 /etc/resolv.conf
中看到相同的地址。但是我不明白是谁在 "redirected" 时将这个数据包路由到这个地址,即使接近理解发生了什么。
systemd-resolved 在 127.0.0.53:53
本地为 dns 请求设置存根监听器
尝试禁用它以继续sudo systemctl disable systemd-resolved
我对 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
我在 INPUT
链上 -j LOG
的帮助下发现了这个地址,当 NATed 主机试图解析主机名时,我看到数据包像 SRC=127.0.0.1 DST=127.0.0.53 ...
一样被丢弃。
因为我正在编写生成正确的 netfilter 规则的自动脚本,所以我需要知道这个 127.0.0.53 可能来自哪里。
我在 /etc/resolv.conf
中看到相同的地址。但是我不明白是谁在 "redirected" 时将这个数据包路由到这个地址,即使接近理解发生了什么。
systemd-resolved 在 127.0.0.53:53
本地为 dns 请求设置存根监听器尝试禁用它以继续sudo systemctl disable systemd-resolved