bind 配置文件介紹

BIND服務器配置文件

option語句:指定全局選項,這裏只介紹常用的。格式如下:
options{
option;
option;

};

version “string”; #[服務器的真實版本號] 可以將它真實地版本號隱藏
directory “path”; #[啓動服務器的目錄] 可以讓named程序cd到這個目錄(絕對路徑)中。推薦/var/named
notify yes | no; [yes] #如果設爲yes,並且named是一個或多個區的主服務器,那麼每當區數據庫有變化時,將自動通知相應區的從服務器。
recursion yes | no; [yes] #指定named是否代表客戶機查詢其它名字服務器。
allow-recursion {address_match_list}; # 允許遞歸
allow-query {address_match_list}; #指定哪些主機(或網絡)可以查詢這臺名字服務器。
allow-transfer {address_match_listh}; #指定哪些主機(或網絡)可以請求區數據的塊傳輸。
blackhole {address_match_list}; [空] #標示出不希望與之進行通信的服務器。
acl語句:訪問控制列表。
acl acl_name{
address_match_list
};

其中,有4個列表是預先定義的:any,localnets,localhost,none

zone語句:是named.conf中的核心語句。將告訴named它具有權威性的區域。併爲管理每個區設置適當的選項。zone語句格式根據named在(主服務器,從服務器)中所扮演的角色不同而不同。

  1. 配置一個區的主服務器
    zone “domain_name”{
    type master;
    file “path”;
    allow-query {address_match_list}; [可選]
    allow-transfer {address_match_list}; [可選]
    allow-update {address_match_list}; [可選]
    };
  2. 配置一個區的從服務器:正常情況下,從服務器會保留區數據庫的一個完整的副本。
    zone “domain_name”{
    type slave;
    file “path”;
    masters {ip_addr; ip_addr; …}; [可選]
    allow-query {address_match_list}; [可選]
    allow-transfer {address_match_list}; [可選]
    };
  3. 設置一個轉發區:如果希望繞過標準的查詢路徑,直接把流量匯聚到該服務器上,則可以使用forward區
    zone “domain_name”{
    type forward;
    forward only | first;
    forwarders {ip_addr; ip_addr; …};
    };

DNS數據庫

一個域的DNS數據庫是由該域的主名字服務器的系統管理員維護的一個文本文件集合。這些文本文件成爲區文件。就是你在”named.conf”中定義的file。
他們包括2種類型的項:分析器命令(如ORIGIN TTL)和資源記錄(Resource Records)。
資源記錄的基本格式:
[name] [ttl] [class] type data
name字段:表示一個主機或者一個域。我經常在配置文件中看到“@”,其實就是代表本域。
ttl字段:以秒爲單位,就是存活時間。
class字段:一般都使用“IN”,對應的是internet。
type字段:有SOA,A,NS,PTR,MX,CNAME等。
data字段:根據type字段不同而不同。
一般,一個區的資源記錄寫在最前面,然後是NS記錄,其他順序可以任意。
下面我將列出來一些經常用到的記錄。並且結合實例說明。
(1)SOA記錄:每個區僅有一個SOA記錄,該區一直延伸到遇見另一個SOA記錄爲止。SOA記錄包括區的名字,一個技術聯繫人和各種不同的超時值。下面是例子:
; 在named.conf中指定的zone語句中指定的名字。假設爲marco.test.com
@ IN SOA ns.marco.test.com. admin.marco.test.com. (
20040701 ;Serial
8H ;Refresh, 8 hours
1H ;Retry, 1 hour
2W ;Expire, 2 weeks
1D ) ;Minimum, 1 days

詳細說明:
“@”是當前區名的簡寫。在這裏可以用marco.test.com.代替(千萬不可忘了最後的”.”,後面也是)。
這裏沒有ttl字段。
class當然是IN了。
ns.marco.test.com.是該區的主名字服務器(注意後面的”.”)
admin.marco.test.com.是域管理員的郵箱,要把第一個”.”換成”@”。
第一個數值Serial代表這個區的序列號。可以供從服務器判斷何時獲取新數據的。這裏我設成今天的日期。更新數據文件必須要更新這個序列號。
第二個數值Refresh指定多長時間從服務器要與主服務器經行覈對。
第三個數值Retry代表如果從服務器試圖檢查主服務器的序列號時,主服務器沒有響應,則經過這個時間後將重新進行檢查。
第四個數值Expire將決定從服務器在沒有主服務器的情況下權威地持續提供域數據服務的時間長短
第五個數值Minimum指高速緩存否定回答的存活時間。

(2)NS記錄:識別對一個區有權威性的服務器(即所有主服務器和從服務器),並把子域委託給其他機構。
格式爲:
zone [ttl] IN NS hostname
例如:
marco.test.com. 3600 IN NS ns.marco.test.com.
marco.test.com. 3600 IN NS anchor.marco.test.com.
marco.test.com. 3600 IN NS ns.marco.tj.net.

(3)A記錄:是DNS數據庫的核心。他們提供了以前在/etc/hosts文件中指定的主機名到IP地址的映射。一個主機必須爲它的每個網絡接口得到一條A記錄。
格式爲:
hostname [ttl] IN A ipaddr
例如:
anchor 3600 IN A 192.168.1.10
表示anchor.marco.test.com.的ip爲192.168.1.10

總結

bind配置選項龐雜,如果想掌控全部的配置還是很困難的,工作中只需要記住常用的。再結合相關手冊,在網上找些資料,然後根據實際需要來搭建服務器。相信不會特別困難的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章