我有 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