BIND 9 documentation閱讀筆記

BIND

http://ftp.isc.org/isc/bind9/cur/9.7/doc/arm/Bv9ARM.ch01.html#id2564720


2013年08月06日 星期二 21時20分51秒

Chapter 1

一、DNS(The Domain Name System),是一個分層設計的,分佈式的數據庫

The Domain Name System (DNS) is a hierarchical, distributed database. It stores information for mapping Internet host names to IP addresses and vice versa, mail routing information, and other data used by Internet applications.


二、Domains和Domain Names

DNS中存儲的數據稱爲domain names,domain names按照組織或管理邊界組織成一個樹狀結構,樹狀結構中的每一個節點稱爲domain,每個domain都被指定一個標籤。每個節點的domain name都是從該節點到root節點的所有標籤中的一個環節,它在寫法上表示成:從右到左,以‘.’分隔的一系列標籤字符串;每個標籤在其父domain中都是唯一的;例:ourhost.example.com。

爲了管理方便,domain names分隔成多個區域,稱之爲zones,每一個zone都是從一個節點開始,向下延伸到節點的末尾,或者到其它節點開始的地方。每個zone中的所有數據(domain names)存儲在一個name server中,name server用來響應關於該zone的查詢請求。


2013年08月07日 星期三 13時22分15秒

三、zone和domain

每個zone都是DNS tree中的一個授權點。一個zone由doamain tree上相鄰的區域組成,該zone的name server包含這些區域的完整信息(指domain names數據),並擁有這些區域的管理授權。

儘管BIND被稱爲“domain name server”,它卻主要用於處理zone,named.conf配置文件中的master和salve聲明,指是的zone,而不是domains。


四、Authoritative Name Servers(主域名服務器)

每個zone都至少有一臺主域名服務器,它存儲有該域中的所有數據(指domain names);爲了網絡和DNS的容錯考慮,多數zone都會有兩個或以上的主域名服務器部署於不同的網絡中。

主域名服務器的應答包中包含'authoritative answer(AA)'標誌,這使得排錯更容易。


主域名服務器根據不同的角色,分爲:primary、slave和stealth

primary:

   用於維護zone中的數據,數據通常從一個本地文件中載入,該本地文件一般是由人爲編輯的,或以其它人爲編輯的文件爲模板,由機器生成,這個文件稱爲zone file或master file。某些情況下,master file根本不是由人來編輯的,而是由操作系統動態生成的。

slave servers:

   使用一種zone transfer的技術,從primary中獲取zone數據,也可以從其它slave中獲取數據,因此一個slave server也可以是其它slave的primary。  

stealth servers:

   通常,一個zone的所有主域名服務器都會在其父zone的NS記錄中列出來;而一個zone的stealth server卻不會被NS記錄所列出;它通常用於保存一個zone的本地副本,以加速對該zone的訪問,或者充當高可用角色,即使primary或slave不好用時,也可以保證該zone的可用。

   Usually all of the zone's authoritative servers are listed in NS records in the parent zone. A stealth server is a server that is authoritative for a zone but is not listed in that zone's NS records. Stealth servers can be used for keeping a local copy of a zone to speed up access to the zone's records or to make sure that the zone is available even if all the "official" servers for the zone are inaccessible.

   配置primary時,在配置文件中把它設置成"hidden primary",就可以把它設置成stealth server。當primary位於防火牆後面,不能被網絡直接訪問時,我們可以把它設置成stealth server.


五、Caching Name Servers

   操作系統中提供的DNS解析器通常是“stub resolver”,它不具備實施完整DNS解析的能力。stub解析器並不知道如何解析查詢,它需要把所有查詢發送給本地命名服務器來實施解析。關於stub resolver,參考:http://man.lupaworld.com/content/develop/rfc/RFC1612.htm

   實施查詢的本地命名服務器,稱之爲“recursive name server”(遞歸命名服務器),它爲本地客戶端實施遞歸查詢,爲了提高查詢性能,recursive servers通常會緩存它們查詢結果,由於遞歸查詢和緩存緊密聯繫在了一起,recursive servers和caching server經常作爲同義詞使用。

   Since the processes of recursion and caching are intimately connected, the terms recursive server and caching server are often used synonymously.

   cache的存活時間由資源記錄(resource recoder)的TTL決定。


   forwarding:

   caching name server把自己不能解析的請求,轉發到另外一個caching name server,那麼後一個caching name server稱爲forwarder。配置DNS是一般會指定一個或多個forwarder,它們依次被查詢,直到所有forwarder被遍歷,或者解析到查詢結果。

   forwarder很有用。在一個配置有防火牆的網絡中,不是所有服務器都可以穿透防火牆進行傳遞數據,這時它可以把解析請求轉發到一臺可以穿透內網的forwarder,由它來解析查詢。

   Servers unable to pass packets through the firewall would forward to the server that can do it, and that server would query the Internet DNS servers on the internal server's behalf.


六、Name Servers in Multiple Roles

   一臺name server可以充當多個角色,它既可以是一個zone的primary,也可以其它zone的slave,或者是一大堆本地服務器的caching server;但是最好把這些角色分開運行於不同的服務器上。

   主域名服務器一般會禁用recursive,以提高可靠性和安全性;而如果一臺name server只需要爲本地client提供查詢而不是爲全部zone提供查詢,則可以把它放到防火牆後面。


2013年08月08日 星期四 13時41分02秒

chapter 3  Name Server Configuration    

   兩個簡單示例,一個是caching-only的配置示例,一個是authoritative-only的配置示例。詳細的配置選項,參考文檔的第六章。


   caching-only name server配置分析:

   這個配置示例,僅允許corpnets(即:192.168.4.0/24,以及192.168.7.0/24網段)中指定的主機使用該name server來解析其DNS請求。

   acl acl_name {ip/mask;};

       訪問控制列表,acl關鍵字後面跟一個控制列表名稱,後面跟一個花括號,花括號裏是以;分隔的ip列表,可以使用any、none、localhost、localnets預定義匹配列表,花括號後面是一個分號。訪問控制列表裏的ip地址,將由options配置來決定是否允許他們訪問該zone的name server。

   options {};

       options配置段中的選項用於配置其後面的所有zone的公共屬性,也可以在相應的zone中指定相關屬性,zone中的設定可以覆蓋options裏的設定。

   zone ip/domain {};

       配置每一個zone的特有屬性。

       type:決定zone的角色;file:資源記錄文件路徑;notify:當zone data發生變化時,決定primary是否通知它的slave。


   authoritative-only name server配置分析:

   該配置指定了example.com的主域名服務器,以及eng.example.com的slave域名服務器。

   共同的部分略掉。

   allow-query-cache {none};   該name server禁用cache功能,對於用戶發送過來的請求,name server不會在自己的cache數據中查詢。

   recursion no;   禁止遞歸查詢,防止被***。在BIND 9.4及以後版本中,禁止遞歸要同時關閉兩個選項:recursion和allow-query-cache。

   allow-transfer {ip;};   該name server查找不到數據,該把向哪個forwarder轉發請求


dig語法:dig @ip domain


chapter 6 --> Configuration File Grammar

   BIND 9配置文件中可以有很多種配置段,最常用的有如下幾個:

   acl:定義一個ip列表,用於訪問控制,及其它用途

   include:很好用的選項,可以使用配置文件模塊化,規則化。可以把通用的,或最常用的配置寫成一個或幾個文件,當用到它們的時候,直接include

   logging:使用channel語句和category語句來定義日誌輸出。channel語句配置設定日誌輸出位置(輸出到單獨的文件、還是syslog,或stderr)、日誌記錄級別,category設定日誌類別

   options:公共屬性設定

   zone:最主要的配置

   view:用於DNS分離策略

每個配置段中的選項,用到時候查看一下官方文檔。      


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