对于我的特定设置,我已经控制了例如example.com的BIND 9区域文件.此区域中有多个主机,例如www.example.com和mail.example.com.我希望公共互联网能够查询这些主机并检索他们所期望的IP.
某些主机是否可以被标记为“私有”,因为大多数公共互联网用户无法查询有关这些主机的信息,除了特定的IP用户范围?例如,我可以创建第三个主机,secret.example.com只能由192.168.0.x范围内的用户查询吗?
我知道我可以在BIND中使用单独的区域来执行此操作,但这似乎并不能满足我的需求.这里的关键是公共和私有主机都需要成为同一父级的一部分,在这种情况下是example.com.这也可以通过几台专用机器上的/ etc / hosts文件来实现,但是这些记录不能集中管理.
这是可能的,还是我忽略了不同的解决方案?
解决方法
是的,Bind通过观点来做到这一点.一些详细的例子是
here和
here.
它在named.conf中看起来像这样:
view "trusted" { match-clients { 192.168.23.0/24; }; // our network recursion yes; zone "example.com" { type master; // private zone file including local hosts file "internal/master.example.com"; }; // add required zones }; view "badguys" { match-clients {"any"; }; // all others hosts // recursion not supported recursion no; }; zone "example.com" { type master; // public only hosts file "external/master.example.com"; }; // add required zones };
我通常做的一个简单管理的技巧是简单地让内部文件$INCLUDE外部文件 – 只是不要忘记SOA.
最后要提醒的是,不要假装这不仅仅是橡皮鸡保险(不是说有任何问题).