Domain-Name-System

BIND9 DNS 與內部視圖內部的外部視圖

  • May 1, 2014

我正在計劃一個具有特殊視圖的新 BIND9 DNS 伺服器。

我們有很多外部區域和公共 IPv4 地址。為了簡單起見,我們有一個外部域的子區域,僅用於內部範圍;類似於:local.example.com

我們的目標是讓事情變得簡單,並且不要在內部和外部視圖中使用不同的 example.com 區域。

為此,我必須僅限制內部客戶端的 local.example.com 區域。但是內部客戶端應該將外部地址解析為,因為我們有具有公共 IPv4 地址的內部客戶端。

將內部區域視為一組維恩圖。外部集在內部集內,因此所有區域也應在內部範圍內且未修改。

主要問題可以總結為:我可以在內部和外部視圖中指向相同的數據庫區域文件嗎?

只需使用 acl 將查詢限制在您的內部區域。

acl internal-networks {
   10.0.0.0/8;
   172.16.0.0/12;
   192.168.0.0/16;
};

zone "internal.example.com" {
   type master;
   file "internal.example.com";
   allow-query { internal-networks; };
};

您可以將其他 IP 地址添加到內部網路 acl。它們是否可公開路由並不重要;無論您在那裡添加什麼都可以查詢該區域。

如果它是普通的靜態主區域(即,named 只會讀取文件),您可以引用相同的區域文件。如果它是從屬區域、啟用了動態更新的區域或類似的東西,它將中斷。

在配置文件中使用include,您甚至可以將視圖之間共享的區域的定義放在一個單獨的文件中,並在兩個視圖中引用它。當然,這是否可行取決於您是否要對區域進行不同的設置。

(如果要共享區域的子集,您可以$INCLUDE在區域文件本身內部使用。)

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