Bind

使用 BIND 9 如何在多個視圖中匹配客戶端?

  • December 2, 2016

BIND 似乎是從上到下查看配置文件,並根據匹配客戶端將查詢分配給第一個匹配視圖。根據http://www.zytrax.com/books/dns/ch7/view.html這正是它應該如何工作的。

在我的配置中,可能還有其他適用於 match-clients 配置中的使用者的視圖,我想以某種方式遍歷它們。如果沒有積極的打擊(從上到下很好),理想情況下應該繼續檢查以下視圖。

這在某種程度上可能與 BIND 一起使用嗎?這是一個例子。在下面的配置中,來自 192.168.1.100 或 192.168.200 的使用者都只會進入第一個視圖。相反,我希望使用者 192.168.1.200 也可以訪問第二個視圖。

acl "kids" {
       192.168.1.100;
       192.168.1.200;
};

view "kids"{
       response-policy { zone "kids"; };
       match-clients { kids; };
       recursion yes;
       zone "kids" {
               type master;
               file "kids.db";
               allow-query { none; };
       };
};

acl "teens" {
       192.168.1.200;
};

view "teens"{
       response-policy { zone "teens"; };
       match-clients { teens; };
       recursion yes;
       zone "teens" {
               type master;
               file "teens.db";
               allow-query { none; };
       };
};

它不能按照你想要的方式完成。視圖匹配在第一次匹配時停止,在視圖之外,只能存在一組預設條目。一個客戶端只能匹配一組區域。

您可以讓您的所有視圖包含您想要提供給客戶端的所有區域定義(在您的範例中,192.168.1.200 應該僅在“teens”acl 中,並且“teens”視圖將定義兩個“kids”和“青少年”區域)。您可以使用“include”命令來避免不必要的重複,但僅此而已。

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