PfSense 和重定向 DNS 请求

PfSense 和重定向 DNS 请求

我设置DNS解析器作为我的 pfsense v. 2.4.5 中的 DNS 服务,还将 pfsense 本地 IP 地址(127.0.1.1,实际上是 192.168.5.1)设置为我的唯一 DNS 服务器,让解析器直接将 DNS 请求发送到 DNS 根服务器。然后我想知道如果我的 LAN 中的任何客户端在其网卡属性中设置 DNS IP 地址以绕过 pfsense 解析器并将查询发送到外部解析器会发生什么。所以,我设置了以下规则:

https://pfsense-docs.readthedocs.io/en/latest/dns/blocking-dns-queries-to-external-resolvers.html

它们可以工作,但如果客户端设置自己的 DNS 服务器,它们也会阻止客户端访问互联网。

然后我尝试了这个 NAT 规则:

https://pfsense-docs.readthedocs.io/en/latest/dns/redirecting-all-dns-requests-to-pfsense.html

但我不知道它是否像文章中所说的那样有效。在我的电脑网卡属性中设置 dns 服务器(8.8.4.4)后,我运行 pfsense数据包捕获这显然表明 DNS 请求已发送并由 8.8.4.4 直接响应。一些 nslookup 显示相同的结果。我不明白到底发生了什么,以及如何确保上述 NAT 规则正常工作。

答案1

NAT 会自动在两个方向上应用。如果计算机将数据包发送到 8.8.4.4,而 pfSense 将其重定向到另一个地址,则必须对返回计算机的响应应用完全相反的改变——否则计算机将无法识别它属于同一次对话。

因此,即使响应实际上是由您的本地解析器生成的,pfSense 也会将其源重写为“8.8.4.4”以匹配原始请求。

确定 NAT 是否正常工作的最简单方法是捕获两个都LAN 和 WAN 接口。如果响应来自“真实”的 8.8.4.4,那么它们将首先到达 WAN 接口,然后再传到 LAN。但如果您的重定向有效并且它们是由本地解析器生成的,那么数据包将突然出现在 LAN 端没有相应的 WAN 数据包。

或者:告诉计算机使用 DNS 服务器地址不是真正的 DNS 服务器。(例如,192.0.2.x 是通常的“虚拟地址”范围,不可能响应 DNS 查询。)如果计算机在查询不存在的服务器后仍能收到响应,则表明重定向正在工作。

相关内容