如何使 DNS 记录在网络内外有所不同

如何使 DNS 记录在网络内外有所不同

我正在尝试允许从 SOHO 网络内部和外部访问我们的 NAS。我已经使用 DDNS 设置了一个公共 IP,并设置了 NAT,以便它允许 :80 和 :443 通过,这样我就可以从网络外部访问我的 NAS。

但是,我的路由器(华为 H122-373)不支持 NAT 发夹技术,因此所有来自网络内部的请求都会被丢弃。我想尝试这个答案通过在我的 LAN 中设置 DNS。但是,它不适用于非递归 DNS 客户端,因为它们会首先询问“真实”DNS 提供商。

这是我的设置:

My DNS provider:
my-office.company.com IN A 88.99.11.22 # DDNS to my public IP


My LAN DNS
my-office.company.com IN A 192.168.1.2 # My NAS

我尝试设置NS从我的 DNS 提供到我的 LAN DNS 的记录,并将 :53 重定向到我的 LAN DNS,但同样,网络内的客户端无法联系 LAN DNS。

答案1

但是,它不适用于非递归 DNS 客户端,因为它们会首先询问“真实的”DNS 提供商。

缺少的部分是你的 DNS 服务器应该LAN 设备的“真正”DNS 提供商。

LAN 具有内部 DNS 解析器(例如嵌入在路由器中)已经很常见,其地址通过 DHCP 向设备公布,而不是直接公布外部解析器 - 您的路由器可能已经这样做了。(一些如今,应用程序会绕过它并故意联系外部 DNS 解析器(通常通过 TLS 或 DoH),但在大多数情况下,LAN 内托管的解析器与其他解析器一样“真实”。)

因此,在您的情况下,您应该更改路由器的 DHCP 服务器配置以开始公布自定义 DNS 服务器的 IP 地址,而不是其当前的 IP 地址。

相关内容