如何configuration专用子域的绑定?

我正在尝试为NAT防火墙后面的专用networking(RFC1918)定义一个子域名; 我们称之为priv.example.com。 通常,从我可以在各种网站上收集的内容,可以通过将example.com的公共和外部DNS服务器的子域委派给另一个对priv.example.com为内部和权威的DNS服务器来完成。

但是,我有一些问题需要克服这个解决scheme。 首先是我不需要或者不希望公共互联网知道priv.example.com。 我想这可以用绑定视图来处理,但是我还没有弄明白这一点(我也不确定我们的DNS主机是否支持视图)。 第二个是,我将不得不在防火墙上打开一个洞,并创build一个地址转换,以便外部DNS服务器可以看到内部的一个。 这似乎是不必要的安全风险。

有没有办法创build这个场景,而不使公共DNS服务器知道priv.example.com的私人DNS? 我正在使用bind9作为内部私人服务器。 有一个更好的整体解决scheme,为我的私人networking提供名称服务? 我见过其他更有争议的解决scheme,例如使用专用顶级域名(TLD)或为专用networking中的二级域名定义重复的“主”DNS。 这些对我来说看起来像是丑陋的黑客。

您需要将networking内的所有系统都parsing为内部DNS服务器。

一旦所有主机都使用内部DNS服务器,您可以按照mulaz的build议将子域定义为区域,或者使用DNS转发 – 允许您select要重写的主机,并让其余部分在外部parsing。 无论哪种方式,内部DNS服务器将中继(和caching)任何它不知道的请求(如google.com)。

哪个DNS服务器(parsing器)在你的本地networking中使用计算机? 如果他们使用您pipe理的内部绑定服务器,则可以为您的域设置区域,并为您的内部服务添加适当的logging。 dns服务器仍然可以正常工作,作为获取外部地址的parsing器,但将为本地域的本地用户提供本地区域。

当然,所有的计算机将不得不使用你为他们设置的DNS服务器,而不是其他DNS服务器(如opendns,谷歌等)

您可以使用拆分DNSconfiguration绑定。 然后您将有两个单独的区域文件的域。 向公众提供的内容只包含你希望公开的logging。 要在内部提供服务的相同域的区域文件将包含相同的信息以及您希望可用于内部客户端的任何其他资源。 这个内部区域文件也可以适用于资源的内部地址,而不是公共地址。