如何重定向我的 DNS 服务器

如何重定向我的 DNS 服务器

我有一个在家使用的域名,为了便于讨论,我们将其称为domain.com。我在家庭网络上使用此域名,但实际上我也拥有该域名。因此,当我加载www.domain.org一个子域名时,我希望我的 DNS 服务器将此请求重定向到实际互联网,而不是我的家庭域名。
我使用该域名来识别家中的设备。我该如何实现这一点?
我在一台 Ubuntu 机器上运行 BIND,该机器既充当网关,又充当 DNS 服务器

答案1

我建议将您的内部网络移至第三级(即device1.lan.domain.org)以避免冲突。

话虽如此,你想要的本质上是子域名委派。如果我没记错的话,它应该像添加这些条目一样简单:

www           IN      NS     ns1.example.com.
www           IN      NS     ns2.example.com.

因为如果没有互联网访问,这无论如何都无法实现,所以您可以忽略与委派有关的所有其他最佳实践。

答案2

最简单的方法是使用$INCLUDEBIND 中的功能。

您需要做的就是为所有内部名称创建一个文件,例如,db.domain.com-internal其中包含所有内部记录(您已经拥有,只需替换文件名),然后创建第二个文件,将其命名为db.domain.com-external,其中包含来自外部真实域的所有记录减去 SOA 和 NS 记录。

在文件底部db.domain.com-internal添加以下行:,

$INCLUDE db.domain.com-外部

这样,您就可以使用两个文件在逻辑上将内部和外部区分开来,但该$INCLUDE指令会将它们合并为一个完整的域视图。在您询问之前,www.domain.com 的解析是在内部进行的,无论是通过 A 记录还是 CNAME 记录,您的浏览器返回的 IP 地址仍会将其发送到您在互联网上的网站。

重新加载,检查错误,就这样。很简单。

这种方法效果很好,因为正确的拆分 DNS 配置(内部/外部)会向外界公开内部可见的完整记录集的子集。也就是说,一般来说,对于域的外部公开视图,您只会公开具有 IP 地址的可公开访问的名称。

相关内容