Domain-Name-System

自動假設幾個區域文件的主控

  • January 1, 2016

現在我正在移動我的主伺服器,我正在花一些時間改進和簡化它的一些設置,現在它已經來到了 DNS 伺服器(在新設置中綁定 9.9.5)。

我注意到在我的配置中,我有很多這樣定義的區域:

zone "123.123.123.123.in-addr.arpa" in {
       type master;
       file "123.123.123.123";
};

zone "123.123.123.124.in-addr.arpa" in {
       type master;
       file "123.123.123.124";
};

zone "example.com" in {
       type master;
       file "example.com";
};

zone "example.net" in {
       type master;
       file "example.net";
};

// With another ~20 definitions like that

這對我來說似乎非常低效。有沒有辦法自動載入找到由options { directory "/some/folder" }.

不,沒有辦法在named.conf其中及其包含的文件中執行此操作。必須明確定義每個區域,以及至少一個類型和數據源。如果多個區域包含的記錄完全重複,則可以讓多個區域引用同一個文件,但這是唯一的捷徑。

其他選項可以在全域選項塊( , 等)中設置其預設值allow-transferalso-notify但您必須至少定義每個區域和必填欄位。

為了完整起見,我將提到一個我強烈建議反對的較新版本的 BIND 的例外情況。您可以使用新rndc addzone功能即時遠端創建區域,但這實際上是創建一個帶有散列名稱(即文件名中的隨機字元)和.nzfBIND“知道”要載入的後綴的附加配置文件。從可維護性的角度來看,這是非常糟糕的,因為它違反了最小意外/驚訝原則;主配置文件沒有引用這些附加配置文件,其他管理員不會知道這些文件的內容正在被載入,除非他們熟悉該功能。(非常 DNS 管理員是由於它的新穎性)

https://ftp.isc.org/isc/bind/9.10.3rc1/doc/arm/man.rndc.html

附加區

$$ class [view $$] 配置 在伺服器執行時添加一個區域。此命令需要將 allow-new-zones 選項設置為 yes。命令行上指定的配置字元串是通常放置在 named.conf 中的區域配置文本。

配置保存在名為 hash.nzf 的文件中,其中 hash 是從視圖名稱生成的加密散列。當 named 重新啟動時,該文件將被載入到視圖配置中,以便添加的區域在重新啟動後可以保留。

此範例 addzone 命令會將區域 example.com 添加到預設視圖:

$ rndc addzone example.com ‘{ 類型主;文件“example.com.db”;};’

(注意區域配置文本周圍的括號和分號。)

另見 rndc delzone 和 rndc modzone。

引用自:https://serverfault.com/questions/746229