BIND 似乎是从上到下查看配置文件,并根据匹配客户端将查询分配给第一个匹配视图。根据http://www.zytrax.com/books/dns/ch7/view.html这正是它应该如何工作的。
在我的配置中,可能还有其他适用于 match-clients 配置中的用户的视图,我想以某种方式遍历它们。如果没有积极的打击(从上到下很好),理想情况下应该继续检查以下视图。
这在某种程度上可能与 BIND 一起使用吗?这是一个例子。在下面的配置中,来自 192.168.1.100 或 192.168.200 的用户都只会进入第一个视图。相反,我希望用户 192.168.1.200 也可以访问第二个视图。
acl "kids" {
192.168.1.100;
192.168.1.200;
};
view "kids"{
response-policy { zone "kids"; };
match-clients { kids; };
recursion yes;
zone "kids" {
type master;
file "kids.db";
allow-query { none; };
};
};
acl "teens" {
192.168.1.200;
};
view "teens"{
response-policy { zone "teens"; };
match-clients { teens; };
recursion yes;
zone "teens" {
type master;
file "teens.db";
allow-query { none; };
};
};
它不能按照你想要的方式完成。视图匹配在第一次匹配时停止,在视图之外,只能存在一组默认条目。一个客户端只能匹配一组区域。
您可以让您的所有视图包含您想要提供给客户端的所有区域定义(在您的示例中,192.168.1.200 应该仅在“teens”acl 中,并且“teens”视图将具有两个“kids”的定义和“青少年”区域)。您可以使用“include”命令来避免不必要的重复,但仅此而已。
绝对有可能...
对于您的奴隶,您需要使用 tsig 并从视图中排除您的奴隶,请参阅绑定如何处理允许通知和匹配客户端,其中有一个示例。