我使用 bind9 设置了两个 DNS 服务器,它们接收来自 LAN 上其他 PC 的查询。两台 PC 都有自己的域,到目前为止,我设法让主服务器在请求不在备份服务器中的域时将查询重定向到备份服务器。现在,我要做的最后一件事是根据客户端的 IP 地址响应来自不同服务器的查询。
我有两个包含 LAN 上的 IP 地址的列表:Linux 和 VPCS
我需要让主 DNS 服务器响应来自 Linux 的查询,让备份服务器响应来自 VPCS 的查询。每当我测试它时,我都会查询主 DNS 服务器中的域,而不管 PC 位于哪个列表中。因此,如果客户端 IP 地址在 VPCS 列表中,我几乎必须将查询重定向到另一个域。我一直在使用视图,并且成功过滤了查询,但我仍然无法将它们重定向到其他服务器。我也尝试创建另一个区域,但没有成功。
主 DNS 服务器的 IP 地址是 192.168.1.14 。备份 DNS 服务器的 IP 地址是 192.168.2.3 。我使用 2 个思科路由器在 gns3 上模拟整个 LAN,我检查过它们并且设置正常,所以我怀疑它们不是罪魁祸首。
这是我的named.conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
include "/etc/bind/named.conf.options";
view "vpcs"{
match-clients{vpcs;};
forwarders {
192.168.1.14;
192.168.2.3;
};
# forward only;
# recursion yes;
zone"zonaP.gg" in {
type master;
file "/etc/bind/for.zonaP.gg";
masterfile-format text;
};
zone "168.192.in-addr.arpa" in {
type master;
file "/etc/bind/rev.zonaP.gg";
masterfile-format text;
};
};
view "linuxes"{
match-clients{any;};
zone "zonaP.gg" in {
type master;
file "/etc/bind/for.zonaP.gg";
masterfile-format text;
};
zone "168.192.in-addr.arpa" in {
type master;
file "/etc/bind/rev.zonaP.gg";
masterfile-format text;
};
};
这是我的named.conf.options
acl linuxes {
192.168.1.11;
192.168.1.3;
192.168.1.14;
192.168.2.4;
192.168.2.3;
192.168.1.19;
192.168.1.20;
};
acl vpcs {
192.168.1.10;
192.168.1.11;
192.168.1.12;
192.168.1.2;
192.168.1.4;
192.168.1.13;
192.168.1.15;
192.168.2.2;
192.168.3.2;
};
options {
directory "/var/cache/bind";
recursion yes;
allow-query {any;};
allow-query-cache {any;};
forwarders{192.168.2.3;};
dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { any; };
};