zone "svn.example.com" IN { type master; file "/etc/named/svn.example.com.zone"; };
并在区域文件中:
@ IN NS svn.example.com. svn.example.com. IN A 10.200.1.1
所有其他域都转发到公共名称服务器.这有效,但它并不理想,因为如果我想添加一个新的私有子域,它需要创建一个全新的区域.如果我将此区域作为整个example.com TLD的主记录,那么我假设对当前公共* .example.com的请求将不再适用于使用私有DNS的客户端(除非它们在私有DNS的区域文件中重复) ).
有没有办法让我提供一个指定一个或多个私有子域的区域文件,但仍然转发它无法解析到公共名称服务器的请求?我尝试使用转发区域类型,但后来我无法指定自己的区域文件,它只是转发.
更新
火箭科学家的DNS第6章给出了a stealth DNS server on an internal network的DNS配置示例.这似乎与我想要达到的目标相匹配,并特别建议复制私有DNS区域中的公共DNS记录.显然,虽然我想要解决的问题是记录的重复,所以这更像是一种解决方法.
解决方法
>拆分DNS – 在内部DNS服务器上具有不同的DNS记录…但内部DNS服务器必须拥有所有记录,并且需要在内部和外部服务器之间进行同步
> delegation – 正在创建svn.example.com区域,并让您的example.com DNS服务器查找svn.example.com以获取与* .svn.example.com相关的任何内容(包括svn.example.com本身)
一种方法是将“internal.example.com”这样的子域委托给LAN的DNS服务器.在这些DNS服务器上,您可以为internal.example.com(或i.example.com,如果您希望它更短)配置区域,并添加所需的任何记录.
您可以自动同步内部和公共DNS服务器以使用拆分DNS,具体取决于您在每个服务器上使用的软件.
第三种选择是将内部IP地址放在公共DNS中.这可能会产生安全隐患(如果您不在LAN上,有人可能会使用它来欺骗您连接到他们的服务器),但是应该可以工作并且设置起来很简单.