Bind9を、インターネットにアクセスできないローカルDNSのみに構成したいと考えています。したがって、仮想ドメインxy.comに5台のPCがあります。このドメイン内ではインターネットにアクセスできません。
DNSサーバーには次のようなエントリがあります。
バインドは正しく構成されていますが、DNSサーバーで「Dig @localhost pc1」を実行すると、ルートサーバーにアクセスできなくなるため、バインドが機能しません。しかし、私は彼にローカルであり、どのIP pc1が持っているかを答えてもらいたいだけです。
どうすればこれを達成できますか?
これを実現するには、通常構成されている "root.hints"ゾーンを置き換える偽のルートゾーンを作成する必要があります。
named.conf
にこれを入れてください:
zone "." IN {
type master;
file "fake.root";
};
そしてfake.root
にこれを入れてください:
$TTL 300
. IN SOA ns. hostmaster.xy.com. (
20120101 1800 900 604800 86400
)
. IN NS ns
ns IN A 127.0.0.1
これにより、インターネットにアクセスして実際のルートヒントを取得しようとする試みがすべて防止されます。
pcN.xy.com
エントリをそのルートゾーンに直接配置することもできます。それらを独自のxy.com
ゾーンファイルに置く必要はないので、fake.root
に以下を追加するだけです。 :
$Origin xy.com.
pc1 IN A 10.1.1.1
pc2 IN A 10.1.1.2
pc3 IN A 10.1.1.3
pc4 IN A 10.1.1.4
pc5 IN A 10.1.1.5
必要なoptions { }
以外(ACL?)はそれだけです-他には何も必要ありません。
再帰を無効にする必要があります:
設定に追加:
allow-transfer {“none”;};
allow-recursion {“none”;};
私の設定「named.conf」は次のようになります(RHELシステム上):
options {
allow-query {
any;
};
allow-recursion {
none;
};
構成を十分に詳しく説明していません。権威ある部分が欠けていると思います。設定ファイルに次のようなブロックが必要です:
zone "domain.lan" {
type master;
file "master/db.domain.lan";
allow-update { none; };
};
どこ master/db.domain.lan
は、上記で投稿したレコードを含むゾーンファイルを指す必要があります。また、ゾーンファイルのヘッダーにはSOA(権限の開始))レコードが必要です。ゾーンファイルは次のようになります。
domain.lan. 86400 IN SOA dns.domain.lan. root.dns.domain.lan. ( 1 10800 3600 6044800 86400 )
86400 IN NS dns.domain.lan.
dns.domain.lan. 86400 IN A 10.10.10.1
pc.domain.lan. 86400 IN A 10.10.10.2
必要に応じて、名前、値、IPをカスタマイズできます。