bind中的view語句
阿新 • • 發佈:2017-10-16
bind9 external client type 文件 視圖 不同域 數據 註意 9. view語句
視圖(view)語句的定義和使用:
view view_name [class] {
match-clients { address_match_list } ;
match-destinations { address_match_list } ;
match-recursive-only { yes_or_no } ;
[ view_option; ...]
[ zone-statistics yes_or_no ; ]
[ zone_statement; ...]
};
視圖是BIND9強大的新功能,允許名稱服務器根據詢問者的不同有區別的回答DNS查詢。特別是當運行拆分DNS設置而不需要運行多個服務器時特別有用。每個視圖定義了一個將會在用戶的子集中見到的DNS名稱空間。
根據用戶的源地址(“address_match_list”)匹配視圖定義的“match_clients”和用戶的目的地址(“address_match_list”)匹配視圖定義的” matach-destinations”。
如果沒有被指定,match-clients和match-destinations默認匹配所有地址。一個視圖也可以做為match-recursive-only來指定,意思是來自匹配用戶的遞歸請求將會匹配該視圖。視圖語句的順序是很重要的,一位用戶的請求將會在它所匹配的第一個視圖中被解答。在視圖語句中定義的域只對匹配視圖的用戶是可用的。通過在多個視圖中用相同名稱定義一個域,不同域數據可以傳給不同的用戶。例如:在拆分DNS設置中的”內部”和”外部”用戶。
許多在named.conf 的options裏的語句中給出的選項也能在視圖語句中使用,僅僅用於使用哪個視圖解答請求的時候。當view-specific值沒有給出,options裏的語句值就使用默 認值。域選項也可以在視圖語句中指定默認值;這些view-specific默認值的優先級高於那些在options裏面配置的語句。
視圖精確到類。如果沒有給定任何類,就假設為IN類。註意到所有非-IN視圖必須包含一個暗示域,因為只有IN類具有compiled-in默認暗示。
如果在配置文件中沒有view語句,在IN類中就會自動產生一個默認視圖匹配於任何用戶,任何指定在配置文件的最高級的zone語句被看作是此默認視圖的一部分。如果存在外部view 語句,所有的域視圖必須會在view語句內部產生。
這是一則典型的使用視圖語句運行的拆分DNS設置
view "internal" {
match-clients { 10.0.0.0/8; };
// 應該與內部網絡匹配.
// 只對內部用戶提供遞歸服務.
// 提供example.com zone 的完全視圖
//包括內部主機地址.
recursion yes;
zone "example.com" {
type master;
file "example-internal.db";
};
};
view "external" {
match-clients { any; };
// 拒絕對外部用戶提供遞歸服務
// 提供一個example.com zone 的受限視圖
// 只包括公共可接入主機
recursion no;
zone "example.com" {
type master;
file "example-external.db";
};
};
bind中的view語句