Bind9查看哪些匹配取决于请求的域名

不知道如果标题符合这个问题,请随时编辑,谢谢

我使用bind9作为我的小型办公室networking的内部cachingDNS服务器我有一个单一的设备,它是允许parsing地址(这是一个代理服务器运行鱿鱼3.1)所有其他设备得到的IP 192.168.1.99返回任何查询是用这个named.conf.local文件实现的:

view "Allowed" { match-clients { 192.168.1.99; 127.0.0.1; }; recursion yes; zone "webb.local" { type master; allow-query { any; }; file "/etc/bind/master/webb.local"; }; }; view "Blocked" { match-clients { any; }; recursion no; zone "." { type master; file "/etc/bind/master/db.catchall"; }; }; 

我现在要做的就是允许“阻止”视图正确parsing一组选定的域名,即那些结束 “meraki.com”,但他们继续获得192.168.1.99所有其他地址(如“ /etc/bind/master/db.catchall“)。 我的猜测是这可以用“match-destination”来完成,但我找不到任何有关如何使用此function的文档。

非常感谢所有提前帮助,非常感谢!

由于您正在窃取根区域的权限,您当前的BIND DNS防火墙策略稍微落后于时代。 在这种情况下进行传递是相当困难的。 没有“白名单”function,允许您为特定的DNSlogging重新启用recursion。 该解决scheme无法扩展,因为您在所有情况下都被迫手动更新信息:

  • 您可以为您pipe理的每个内部域设置一个forwarder语句,因为您确信您的名称服务器IP不会在没有警告的情况下更改。 使用forwarder的域名,你不pipe理是一个坏主意,因为名称服务器可以随时更改。
  • 另一个解决scheme是静态地定义你想在其中复制的所有DNSlogging. 区。 由于远程方可能随时更改这些DNSlogging,或将内容添加到需要DNS复制的logging的站点,因此这并不会扩展。

我的build议是,你考虑放弃这个方法,而是使用RPZ。 以下问答可以帮助您开始: 将BIND9设置为DNS防火墙

如果你使用RPZ,那么你要查找的白名单是rpz-passthru ; 请记住使用通配符( *.example.com )将域名顶部( example.com )和其下的所有logging列入白名单。