我想知道是否有任何方法可以配置 BIND 服务器以根据记录的本地值回答查询,如果不存在,则将请求转发到配置的递归服务器。
例子
test.com
保存在本地 BIND DB 文件中,如下所示
...
x A 1.2.3.4
...
在“公共”DNS上
...
x A 5.6.7.8
y A 2.0.0.2
...
如果我要求,x
我希望得到答案1.2.3.4
,但是如果我要求,y
我希望我的服务器响应2.0.0.2
。
dnsmasq
这是向文件添加主机时所包含的功能/etc/hosts
,但我想知道:
- BIND 可以做到这一点或者...
- ...有任何其他 DNS 服务器可以做到这一点。
答案1
如果我理解正确的话你需要使用视图
acl "local_network" {
192.168.0.0/16;
127.0.0.0/8;
};
...
view "internal" in {
match-clients { local_network; };
recursion yes;
additional-from-auth yes;
additional-from-cache yes;
zone "." in {
type hint;
file "named.root";
};
zone "test.com" IN {
type master;
file "master/test.com_int";
allow-query { local_network; };
allow-transfer { none; };
allow-update { none; };
};
...
}
view "external" in {
match-clients { !local_network; any; };
recursion no;
zone "test.com" IN {
type master;
file "master/test.com_ext";
allow-query { all; };
allow-transfer { none; };
allow-update { none; };
};
...
};