Col*_*len 3 domain-name-system ip bind
对于我的特定设置,我可以控制 BIND 9 区域文件,例如example.com. 此区域中有多个主机,例如www.example.com和mail.example.com。我希望公共互联网能够像您期望的那样查询这些主机并检索它们的 IP。
是否可以将某些主机标记为“私有”,因为除了特定 IP 范围的用户之外,大多数公共互联网用户无法查询有关这些主机的信息?例如,我可以制作第三台主机,secret.example.com只能由该192.168.0.x范围内的用户查询吗?
我知道我可以在 BIND 中使用单独的区域来做到这一点,但这似乎并没有提供我所需要的。example.com在这种情况下,这里的关键是公共主机和私有主机都需要属于同一个父级。这也可以通过/etc/hosts少数私有机器上的文件来实现,但这样记录将无法集中管理。
这是可能的,还是我忽略了不同的解决方案?
是的, Bind 使用views做到这一点。一些详细的例子在这里和这里。
在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
};
Run Code Online (Sandbox Code Playgroud)
为了使管理更容易,我通常采用的一个技巧是简单地将内部文件$INCLUDE 包含在外部文件中 —— 只是不要忘记 SOA。
作为最后的警告,不要假装这只是橡皮鸡安全(并不是说这有什么问题)。