我有一台 Raspberry Pi,它运行 Bind9 作为本地区域的权威 DNS 服务器。所有其他 DNS 请求都会转发到公共 DNS 服务器。因此,Bind9 正在监听53
地址 处的端口192.168.1.254
。
现在我想在这个 Raspberry Pi 上安装 Unbound 以提供“DNS over TLS”。因为您不能让两个不同的解析器监听同一个端口 ( 53
),所以我认为我可以使用第二个 IP 地址和端口转发来解决这个问题。
因此,我将 unbound 配置为监听192.168.1.2:1053
。对此端口和地址的 DNS 查询可以正确响应。通过 IPtables,我安装了以下规则:
iptables -t nat -A PREROUTING -p udp --dst 192.168.1.2 --dport 53 -j REDIRECT --to-ports 1053
iptables -t nat -A PREROUTING -p tcp --dst 192.168.1.2 --dport 53 -j REDIRECT --to-ports 1053
现在,由于客户端超时,对192.168.1.2
和端口的 DNS 查询未得到答复。53
使用 IPtables,我可以确定规则已正确应用,但我没有得到答案。为什么?
答案1
我解决了这个问题:在我上面描述的情况下,简单的端口转发是不够的。下面的方法可以解决问题:
iptables -t nat -A PREROUTING -p udp --dport 53 --dst 192.168.1.2 -j DNAT --to-destination 192.168.1.2:1053
iptables -t nat -A PREROUTING -p tcp --dport 53 --dst 192.168.1.2 -j DNAT --to-destination 192.168.1.2:1053
也许还有其他解决方案,但是这个对我来说很有效。