如何配置 BIND 将 DNS 请求转发到特定 IP 地址,具体取决于请求站点的 IP 地址

如何配置 BIND 将 DNS 请求转发到特定 IP 地址,具体取决于请求站点的 IP 地址

因此,我尝试配置 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";
    };
};

默认情况下还有一个localnetsacl,与 Bind 服务器本地的任何网络匹配。

请注意,使用视图时,所有区域都必须位于视图内。如果您有多个区域定义需要出现在所有视图中,我发现将它们全部移动到单独的文件中,然后添加到include "myzones.conf";每个视图内会更容易。

相关内容