マスター DNS サーバー上で BIND9 が現在管理しているドメイン名の完全なリストを取得するために実行できるコマンドがあるかどうか知りたいです。
仮に次のようなものがあったとします。
named --list
これにより、そのマスターに現在設定されているすべてのゾーンの名前が表示されます。
さて、質問する理由は、スレーブ BIND9 を設定する方法が、マスター エントリごとに新しいエントリを追加する方法だからです。例:
zone "example.app" {
type slave;
file "/var/cache/bind/example.app.zone";
masters { 192.168.0.1; };
allow-transfer { none; };
};
これにより、スレーブ BIND9 はマスター BIND9 から情報を要求できます。エントリが少数の場合は機能し、見つかります。エントリが 50 をはるかに超える場合は、面倒なだけでなく、多くの間違いが発生し、それらの間違いに対応する 2 番目の DNS がなくなり、2 番目の DNS が見つからないことを知らせるものが何もなくなります...
マスターによって管理されるドメイン名がスレーブ上で複製されるようにスレーブを設定するには、おそらくもっと良い方法があると思います。しかし、スレーブが他の人の DNS を管理することは望ましくありません。そのため、マスター (この例では 192.168.0.1) のみが変更できるようにします。
どちらの解決策でも構いません。もちろん、2 番目の解決策の方が良いでしょう。
答え1
まず、通常は、サイトの信頼性と参照性の観点から、投稿ごとに 1 つの質問のみをします...
最初の質問については、bind に現在管理しているゾーンをダンプするように依頼できます。次dumpdb
のコマンドを参照してくださいrndc
。
dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]
Dump cache(s) to the dump file (named_dump.db).
それにもかかわらず:
- サーバーがマスターであるゾーンのみをダンプするかどうかは不明です
- 基本的にはゾーンのリストではなく完全なダンプなので、出力を解析する必要があります。
2 番目の質問については、実際には 2 つの可能性があります。
bind9はこれを管理するための新しい機能を実装したようです。http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info
マスターの構成からスレーブの構成を生成するスクリプトを作成します。