Bind
bind9 - 一個域用於多個區域
我在公司內部維護一個帶有 bind9 的 DNS 主機。我的問題是我支持幾個團隊,我想將他們的配置拆分為單獨的文件,但它們都具有相同的域。所有 FQHN 均為 X.abc.com、Y.abc.com。我可以在一個區域下擁有多個文件嗎?目前我的named.conf如果:
zone "abc.com" IN { type master; file "/ephemeral/bind_confs/all.ca"; notify yes; };
我想要類似的東西:
zone "abc.com" IN { type master; files "/ephemeral/bind_confs/one.ca", "/ephemeral/bind_confs/two.ca"; notify yes; };
典型的做法是創建多個區域,每個區域都有自己的區域文件:
zone "x.example.com" IN { type master; file "/ephemeral/bind_confs/com.example.x.conf"; notify yes; }; zone "y.example.com" IN { type master; file "/ephemeral/bind_confs/com.example.y.conf"; notify yes; }; zone "example.com" IN { type master; file "/ephemeral/bind_confs/com.example.conf"; notify yes; };
其中每個資源
*.x.example.com
都x.example.com
將被放置在一個專用區域文件中,類似於 y.example.com 和主區域文件中的所有其他內容。這需要是帶有 SOA 記錄的完整區域文件。應有效地忽略在 example.com 的區域文件中輸入的 *.x.example.com 的資源記錄,因為有一個更具體的權威區域文件。
這是“適當”的控制委派,因為管理 x.example.com 的 DNS 數據的團隊將無法覆蓋或破壞主 example.com 區域,也無法干預 y.example.com 區域.
在區域文件中,而不是主綁定配置文件中,您可以使用該
$INCLUDE
指令來包含來自外部文件的記錄。包含的文件不是一個完整的區域文件,它只需要包含您想要包含的記錄。zone "example.com" IN { type master; file "/ephemeral/bind_confs/com.example.conf"; notify yes; };
和區域文件
/ephemeral/bind_confs/com.example.conf
:$ORIGIN example.com. $TTL 86400 @ SOA dns1.example.com. hostmaster.example.com. ( 2001062501 ; serial 21600 ; refresh after 6 hours 3600 ; retry after 1 hour 604800 ; expire after 1 week 86400 ) ; minimum TTL of 1 day ; ; $INCLUDE /ephemeral/bind_confs/com.example.y.data ; absolute path ... ftp IN A 192.168.35.16
和
/ephemeral/bind_confs/com.example.y.data
ftp.y.example.com. IN A 192.168.1.16 www.y.example.com. IN A 192.168.1.17
這樣做的問題是沒有控制委派,沒有什麼能阻止團隊
www.example.com.
在 com.example.y.data 文件中設置記錄。