如何列出我的 BIND9 作為主伺服器管理的所有網域?

如何列出我的 BIND9 作為主伺服器管理的所有網域?

我想知道是否有一個命令可以運行來獲取我的 BIND9 目前在我的主 DNS 伺服器上管理的網域的完整清單。

假設,諸如:

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 請求訊息。它可以工作,並且當您有幾個條目時可以找到。當您的DNS 數量超過50 時,這不僅是乏味的,您還會犯很多錯誤,這意味著沒有第二個DNS 來處理這些錯誤,並且沒有任何東西告訴您第二個DNS 丟失了... …

我認為可能有一種更好的方法來設定從站,即由主站管理的任何網域都將在從站上複製。但我不希望我的奴隸管理其他任何人的 DNS。所以只允許我的主人(在我的例子中是192.168.0.1)進行更改。

任何一種解決方案對我來說都很好。當然,第二個會更好。

答案1

首先,通常每個帖子只問一個問題,因為這對於網站的可訪問性和參考性更好...

對於你的第一個問題,你可以要求bind轉儲它目前管理的區域,請參考dumpdb以下命令rndc

  dumpdb [-all|-cache|-zones|-adb|-bad|-fail] [view ...]
                Dump cache(s) to the dump file (named_dump.db).

儘管如此:

  • 不確定它只會轉儲伺服器為主的區域
  • 您必須解析輸出,因為它基本上不是區域列表,而是完整轉儲。

對於你的第二個問題,其實有兩種可能:

  1. 看起來 bind9 實作了一個新功能來管理這個,請參閱http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info

  2. 編寫一個腳本,從主配置產生從配置。

相關內容