Domain-Name-System
同一 BIND 區域中的公共和私有主機
對於我的特定設置,我可以控制一個 BIND 9 區域文件,例如
example.com
. 該區域中有多個主機,例如www.example.com
和mail.example.com
。我希望公共網際網路能夠查詢這些主機並按照您的期望檢索它們的 IP。是否可以將某些主機標記為“私有”,因為大多數公共網際網路使用者無法查詢有關這些主機的資訊,除了特定 IP 範圍的使用者?例如,我可以創建第三個主機,
secret.example.com
只能由該192.168.0.x
範圍內的使用者查詢嗎?我知道我可以在 BIND 中使用單獨的區域來做到這一點,但這似乎不能提供我需要的東西。
example.com
這裡的關鍵是,在這種情況下,公共主機和私有主機都需要屬於同一個父級。這也可以通過/etc/hosts
幾台私人機器上的文件來實現,但這樣就無法集中管理記錄。這是可能的,還是我忽略了不同的解決方案?
是的,Bind 使用views執行此操作。一些詳細的例子是here和here。
在 named.conf 中看起來像這樣:
view "trusted" { match-clients { 192.168.23.0/24; }; // our network recursion yes; zone "example.com" { type master; // private zone file including local hosts file "internal/master.example.com"; }; // add required zones }; view "badguys" { match-clients {"any"; }; // all others hosts // recursion not supported recursion no; }; zone "example.com" { type master; // public only hosts file "external/master.example.com"; }; // add required zones };
我通常做的一個使管理更容易的技巧是簡單地讓內部文件**$INCLUDE**外部文件——只是不要忘記 SOA。
最後提醒一句,不要假裝這只是橡膠雞安全(並不是說這有什麼問題)。