因此,我尝试配置 BIND,以根据请求域的配置 IP 地址更改响应的 IP 地址。因此,一个请求进入 domain.local 的绑定,其 IP 地址为 10.0.0.10。我尝试做的是,如果 bind 看到任何 IP 地址为 10.0.0.10 的域,它将使用 IP(比如说 10.0.0.20)进行响应,而不必在 bind 中为 domain.local 创建记录。
答案1
如果您需要处理许多不同的响应/网络,这会变得非常混乱,但使用视图可以提供一些基于源的响应。我以前用过这个在响应中给局域网客户端一个本地地址,给其他任何人一个公共地址。
acl "someclients" {
1.2.3.4/24;
5.6.7.8/24;
};
view "view1" {
// directly specifying address(es) or ranges
match-clients { 10.0.0.0/8; };
zone "domain.com" {
type master;
file "view1/domain.com.zone";
};
};
view "view2" {
// example using a predefined group of addresses/ranges
match-clients { someclients; };
zone "domain.com" {
type master;
file "view2/domain.com.zone";
};
};
view "view3" {
match-clients { any; };
zone "domain.com" {
type master;
file "view3/domain.com.zone";
};
};
默认情况下还有一个localnets
acl,与 Bind 服务器本地的任何网络匹配。
请注意,使用视图时,所有区域都必须位于视图内。如果您有多个区域定义需要出现在所有视图中,我发现将它们全部移动到单独的文件中,然后添加到include "myzones.conf";
每个视图内会更容易。