配置 Bind9 转发区域并拒绝所有其他请求

配置 Bind9 转发区域并拒绝所有其他请求

我有一个有趣的用例,其中我的托管服务提供商(Heroku)DNS在解析某个子域时出现间歇性问题。

他们有一个选项,允许您插入自定义解析器作为主要查找机制,然后任何失败的请求都会回退到他们的 DNS。

我该如何设置 bind9 服务器以将请求仅转发到 8.8.8.8 以用于一个子域?并且所有其他请求都需要失败,从而导致客户端使用辅助名称服务器(我不知道其 IP)。

我的第一次尝试是添加区域并指定转发器;

zone "a-test.subdomain.com" {
    type forward;
    forwarders {
        8.8.8.8;
    };
};

然后设置

recursion no;
allow-query { any; };

但它的结果是

query failed (REFUSED) for a-test.subdomain.com/IN/A at query.c:5665

答案1

在配置文件 BIND9 中,找到选项部分并添加或修改以下行:

options {
    recursion yes;
    allow-query { any; };
};

在选项部分下面,添加以下行:

view "forward-view" {
    match-clients { any; };
    recursion no;

    zone "a-test.subdomain.com" {
        type forward;
        forward only;
        forwarders {
            8.8.8.8;
        };
    };
};

view "fallback-view" {
    match-clients { any; };
    recursion no;

    // Add your secondary nameserver's IP address here
    // Replace 192.0.2.2 with the actual IP address
    zone "." IN {
        type forward;
        forwarders {
            192.0.2.2;
        };
    };
};

保存更改并重新启动 BIND9 服务以应用新配置。

相关内容