
私は、bind9 を使用して、LAN 上の他の PC からのクエリを受信する 2 つの DNS サーバーを設定しました。両方の PC には独自のドメインがあり、これまでのところ、メイン サーバーに含まれていないドメインを要求された場合、メイン サーバーがクエリをバックアップ サーバーにリダイレクトするようにできました。これで、最後に行う必要があるのは、クライアントの IP アドレスに応じて、異なるサーバーからのクエリに応答することです。
私のLAN上にあるIPアドレスを含む2つのリストがあります: LinuxesとVPCS
メイン DNS サーバーが Linux からのクエリに応答し、バックアップ サーバーが VPCS からのクエリに応答するようにする必要があります。テストするときは常に、PC がリストに含まれているかどうかに関係なく、メイン DNS サーバーにあるドメインをクエリしています。したがって、クライアント IP アドレスが VPCS リストに含まれている場合は、クエリを別のドメインにリダイレクトする必要があります。ビューを使用してクエリをフィルター処理することに成功しましたが、他のサーバーにリダイレクトすることはできません。別のゾーンも作成しようとしましたが、うまくいきませんでした。
メイン DNS サーバーの IP アドレスは 192.168.1.14 です。バックアップ DNS サーバーの IP アドレスは 192.168.2.3 です。2 台の Cisco ルーターを使用して 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; };
};