BIND中的每个视图都有独立的区域例外

问题:与广域网客户端相比,查询源networking分隔区域并返回LAN客户端的不同logging。

我已经在家里用一个带绑定9.4的小型路由器来实现这个function。 一种叫“兰”的观点和一种叫“万”的观点。 “lan”视图只有root.hints文件和一个区域。

“wan”视图有许多其他区域,包括“lan”视图中的一个区域的副本,但具有不同的logging。

从局域网查询domain1.tld会给我本地logging。 从WAN查询domain1.tld会给我外部logging。 从局域网中查询domain2.tld会给我和从WAN一样的logging,因为它只存在于WAN视图中。

现在我正试图在更大的范围内重新实现这一点,突然我的观点无法查询任何超出自身的东西。 根据绑定用户列表,这是很自然的,他们build议我把我所有的视图都复制到我的局域网视图中。

我希望这里有人有一个更好的解决scheme,因为这意味着我将不得不在多个视图中复制和维护数千个区域文件。 这是不可行的。

我在家里的configuration类似于这个。

acl lanClients { 192.168.22.0/24; 127.0.0.1; }; view "intranet" { match-clients { lanClients; }; recursion yes; notify no; // Standard zones // zone "." { type hint; file "etc/root.hint"; }; zone "domain1.tld" { type master; file "intranet/domain1.tld"; }; }; view "internet" { match-clients { !localnets; any; }; recursion no; allow-transfer { slaveDNS; }; include "master.zones"; }; 

来自局域网的请求为domain1.tld提供本地logging,来自广域网的请求提供远程logging。 这在家庭和我的新的绑定9.7更大规模的罚款。

不同的是,在家里,我设法让我的局域网从master.zones的域中获得远程logging,而没有在“intranet”视图中指定这些域作为重复项。

使用绑定9.7在更大的范围内尝试此操作,除了视图中指定的区域外,我根本没有得到任何结果。 我错过了什么? 我已经尝试了绑定9.7相同的configuration。

每个视图都有一组单独的区域,因此一个视图将不会仅针对在另一个视图中指定的区域进行应答,因此您所期望的行为是有的。 但是,一旦所有WAN区域都从父区域正确委派给您的服务器,则intranet视图将遵循委派链,返回到您自己的服务器,并为该区域查询自己。

我想你的问题是要么 – 你testing你的服务器,并没有委派的区域,或BIND的查询来源属于lanClients ACL,从而创build无限循环。

诀窍是使用query-source 1.2.3.4; ,其中1.2.3.4是一些不属于lanClients ACL的外部接口IP。

另一种select是forward only;添加forward only;forwarders 1.2.3.4; 到你的内部网视图 – 这样的代表链并不重要,这也将在NAT后面工作。

在任何情况下,绑定本身所做的查询都必须从lanClients视图中排除。