Bind
使用 BIND 9 如何在多個視圖中匹配客戶端?
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”命令來避免不必要的重複,但僅此而已。