Domain-Name-System
BIND9 DNS 與內部視圖內部的外部視圖
我正在計劃一個具有特殊視圖的新 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
在區域文件本身內部使用。)