我想知道是否有一個命令可以運行來獲取我的 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).
儘管如此:
- 不確定它只會轉儲伺服器為主的區域
- 您必須解析輸出,因為它基本上不是區域列表,而是完整轉儲。
對於你的第二個問題,其實有兩種可能:
看起來 bind9 實作了一個新功能來管理這個,請參閱http://ftp.isc.org/isc/bind9/cur/9.11/doc/arm/Bv9ARM.ch04.html#catz-info
編寫一個腳本,從主配置產生從配置。