我想将bind9配置为本地DNS,完全没有Internet访问权限.所以我的虚拟域xy.com中有5台PC.在此域中,无法访问互联网.
DNS服务器具有以下条目:
> pc1.xy.com IN A 10.1.1.1
> pc2.xy.com IN A 10.1.1.2
>.
>.
> pc5.xy.com IN A 10.1.1.5
绑定配置正确,但是当我在DNS服务器上执行“挖掘@localhost pc1”时,它无法正常工作,因为他无法联系根服务器.但我只想让他在当地并回答哪个IP pc1有.
我怎样才能做到这一点?
解决方法
要实现此目的,您需要创建一个假的根区域来替换通常配置的“root.hints”区域.
在named.conf中输入:
zone "." IN { type master; file "fake.root"; };
并在fake.root中把这个:
$TTL 300 . IN SOA ns. hostmaster.xy.com. ( 20120101 1800 900 604800 86400 ) . IN NS ns ns IN A 127.0.0.1
这将阻止所有访问互联网的尝试获得真正的根提示.
您也可以将您的pcN.xy.com条目直接放入该根区域 – 它们不需要在他们自己的xy.com区域文件中,因此您可以将以下内容附加到fake.root:
$ORIGIN xy.com. pc1 IN A 10.1.1.1 pc2 IN A 10.1.1.2 pc3 IN A 10.1.1.3 pc4 IN A 10.1.1.4 pc5 IN A 10.1.1.5
除了你可能需要的任何选项{}(ACLs?)之外 – 没有其他要求.