Domain-Name-System

同一 BIND 區域中的公共和私有主機

  • July 6, 2011

對於我的特定設置,我可以控制一個 BIND 9 區域文件,例如example.com. 該區域中有多個主機,例如www.example.commail.example.com。我希望公共網際網路能夠查詢這些主機並按照您的期望檢索它們的 IP。

是否可以將某些主機標記為“私有”,因為大多數公共網際網路使用者無法查詢有關這些主機的資訊,除了特定 IP 範圍的使用者?例如,我可以創建第三個主機,secret.example.com只能由該192.168.0.x範圍內的使用者查詢嗎?

我知道我可以在 BIND 中使用單獨的區域來做到這一點,但這似乎不能提供我需要的東西。example.com這裡的關鍵是,在這種情況下,公共主機和私有主機都需要屬於同一個父級。這也可以通過/etc/hosts幾台私人機器上的文件來實現,但這樣就無法集中管理記錄。

這是可能的,還是我忽略了不同的解決方案?

是的,Bind 使用views執行此操作。一些詳細的例子是herehere

在 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。

最後提醒一句,不要假裝這只是橡膠雞安全(並不是說這有什麼問題)。

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