我有一个有趣的用例,其中我的托管服务提供商(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 服务以应用新配置。