1. 程式人生 > >bind中的view語句

bind中的view語句

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語句