Dns
如何列出我的 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 請求資訊。它有效,當你有幾個條目時它就會被發現。當您擁有超過 50 個時,這不僅乏味,而且您會犯很多錯誤,這意味著這些錯誤沒有第二個 DNS,並且沒有任何東西告訴您第二個 DNS 失去了……
我在想可能有更好的方法來設置從屬伺服器,說由主伺服器管理的任何域名都將在從伺服器上複製。但我不希望我的奴隸管理其他任何人的 DNS。所以只允許我的主人(在我的例子中是 192.168.0.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
- 編寫一個腳本,該腳本將從主配置生成從配置。