绑定 - 本地区域覆盖远程区域

绑定 - 本地区域覆盖远程区域

我有 BIND9 服务器,它为一些本地区域提供服务(用于开发环境)。现在我需要能够合并本地区域的内容与同一区域的“远程”区域:

当地的:

host1 IN A 10.0.1.100.
host2 IN A 10.0.1.101.

偏僻的

www   IN A 1.2.3.4.
mail  IN A 1.2.3.5.
host1 IN A 1.2.3.6.

因此,我需要将本地与远程“合并”,并优先考虑本地记录(因此host1将获得地址10.0.1.100):

www   IN A 1.2.3.4.
mail  IN A 1.2.3.5.
host1 IN A 10.0.1.100.
host2 IN A 10.0.1.101.

如果我在远程区域进行任何更改 - 它应该能够正确解决,例如:如果本地区域中没有这样的记录 - 使用以下方法尝试远程记录8.8.8.8

看起来像是转发器和本地区域的混合。

答案1

您可能想要使用 RPZ 区域。响应策略功能允许您使用绑定覆盖单个资源记录。这样,您可以保持外部区域原样,并且只覆盖使开发环境正常运行所需的单个记录。

在该options部分中,添加:

    response-policy { zone "rpz.int.mtak.nl"; };

rpz.int.mtak.nl仅用于引用 RPZ 区域,不被最终用户使用)。

添加 RPZ 区域:

zone "rpz.int.mtak.nl" {
    type master;
    file "/etc/bind/db/rpz.int.mtak.nl.zone";
    allow-transfer { slaves; };
};

区域文件:

$TTL 60
@            IN    SOA  localhost. root.localhost.  (
                      2014092911
                      3H  ; refresh
                      1H  ; retry
                      1W  ; expiry
                      1H) ; minimum
              IN    NS    localhost.

; Redirect www.twinings.com to www.twitter.com
www.twinings.com    IN CNAME    www.twitter.com.    

; Make google.com unavailable (NXDOMAIN)
google.com          IN CNAME    .

; Rewrite www.superuser.com to 192.0.2.4
www.superuser.com   IN A        192.0.2.4

相关内容