萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux架設DNS服務器(一)

Linux架設DNS服務器(一)

   一、域名系統介紹

  1.域名系統

  域名系統為一個分布式數據庫,它使本地負責控制整個分布式數據庫的部分段,每一段中的數據通過客戶,服務器模式在整個網絡上均可存取,通過采用復制技術和緩存技術使得整個數據庫可靠的同時,又擁有良好的性能.

  域名服務器包含數據庫的部分段的信息,並可提供被稱之為解析器的客戶來訪問.

  DNS的數據庫結構形成一個倒立的樹狀結構,根的名字用空字符串""來表示,但在文本中用"."來書寫.樹的每一個節點都表示整個分布式數據庫中的一個分區(域),每個域可再進一步劃分成子分區(域),每個域都有一個標簽(LABEL),標明了它與父域的關系.域也有一個域名(domain name),給出它在整個分布式數據庫中的位置.在DNS中,域名全稱是一個從該域到根的標簽序列,以"."分隔這些標簽.該標簽最多可包含63個字符.樹中每一節點的完整域名為從該節點到根之間路徑上的標簽序列.

  如果根域在節點的域名中出現,該名字看起來就象以點結尾(實際上是以點和空標簽作結尾).這些以點結尾的域名被稱之為絕對域名(Absoulte Domain Name).不以點結尾的域名被稱之為相對域名.

  域(Domains)即為樹狀域名空間中的一棵子樹,域的域名同該子樹根節點的域名一樣.也就是說,域的名字就是該域中最高層節點的名字.舉例來說,zhuhai.gd.cn域的頂端就是名為zhuhai.gd.cn的節點.

  在DNS中,每個域分別由不同的組織進行管理.每個組織都可以將它的域再分成一定數量的子域並將這些子域委托給其他組織進行管理.域既能包括主機又能包括其他域(它的子域).域名被用做DNS數據庫中的索引.子域中任何域名被認為是域的一部分.

  事實上,主機即為域,域名僅是DNS數據庫中的索引,"主機"可由指向相關主機信息的域名來索引,域包含所有其域名在該域的主機.

  在域名樹中,葉節點的域通常代表主機,它們的域名可指向網絡地址,硬件信息和郵件路由信息.在樹內的節點,其域名既可命名一台主機,也可指向有關該域的子孫或子域的結構信息,在域名樹中的內部域名並不受唯一性限制,它們既可表示它們所對應的域,又可代表網絡中某台特定的主機.例如,sun.com既是sun的域,又是在sun和internet間轉發信件的郵件服務器的域名.

  網絡上的每一台主機都有一個域名,域名給出有關主機的信息,該信息中包含IP地址,MAIL路由信息等等,主機也可以有一個或多個域名別名,別名僅是一些指向正式域名的另

  1.1 域名.

  判斷域是否為另一域的子域的簡單方法是比較它們的域名.子域名以其父域名結尾.

  設計域名系統的一個主要目的是讓管理分散化,這是通過代理來實現的.管理域的組織將該域劃分成子域,每一個子域可以由其他組織代理,這意味著那些代理組織負責維護在該子域的所有數據.他們可以自由地改變數據,甚至可以將他們管理的子域再劃分成更多的子域並將它們再分配.父域中僅包含指向這些子域的指針,因而引用對那裡的查詢.

  1.2 域名服務器

  存儲有關域名空間信息的程序被稱為域名服務器(name server).通常,域名服務器擁有部分域名空間(稱之為區zone)的完整信息.域名服務器可以擁有多個區的授權.

  區與域的關系:

  區包含了域中除了代理給別處的子域外所含有的所有域名和數據.如果域的子域沒有被代理出去,則該區包含該子域名和子域中的數據.

  DNS定義了兩類域名服務器:primary Master 和 secondary Master.PM域名服務器

  從它所運行的主機上的文件獲得它所負責的區的數據,SM域名服務器則是從其它的具有該區授權的域名服務器上獲得它的區的數據.SM域名服務器會定期查詢PM域名服務器以保證區數據為最新版本.

  一般情況下,最好設立一台PM域名服務器和若干台SM域名服務器.這樣可以分擔負載.以及確保區中所有主機都有比較靠近的域名服務器,方便訪問.

  1.3 解析器

  運行在主機上並需要域名空間信息的重新需要解析器(Resolver),在bind中解析器僅僅是一組庫例程,並編譯進象telnet和ftp這樣的程序中,它們並非獨立的進程.解析器所做的工作為:匯集查詢,發送查詢並等待應答,未得到應答時重發查詢.

  1.4 地址到域名的映射

  在域名空間的數據是通過名字來進行索引的,找到一個給定域名的地址相對容易.但是要找到映射給一定地址的域名就要在樹上的每一個域名空間作窮盡搜索.如果這樣的話,效率將相當低,為了解決這個問題,創建一個以地址為索引的域名空間.這部分名字空間被稱為in-addr.arpa域.

  in-addr.arpa域中的節點以Doted-octet(將32bitIP地址表示為由"."分隔開的四個8bit的十進制形式的方法)形式表示IP地址.IP地址在名字空間以相反的方向表示,因為名字是從葉讀到根,例如,www.zhuhai.gd.cn的IP地址為202.105.177.100,則相應的in-addr.arpa子域為177.105.202.in-addr.arpa,使IP地址中的第一個字節出現在樹的最高層使的管理員有能力沿著網絡聯接將in-addr.arpa域代理出去,例如177.105.202.in-addr.arpa可以被代理給網絡177.105.202的管理員.

  1.5 緩存與生存期

  名字服務器在處理遞歸查詢時,可能要進行多次查詢才能得到信息,在這過程中,名字服務器可以獲得很多有關域名空間的信息,名字服務器將所以這些信息都緩存起來以加速以後的查詢.除了加速查詢外,緩存還使得我們不必再次查詢根名字服務器,這樣可使得我們不必過分依賴根名字服務器而大大減輕根名字服務器的負載.

  生存期(TTL)為所容許的名字服務器對數據緩存的時間長度,一旦生存期到了,名字服務器必須丟棄緩存數據並從授權的名字服務器中重新獲取新的數據.這樣可以確保域數據在整個網絡上的一致性.

  1.6 BIND:LINUX名字服務

  linux和其他的unix一樣,都是用BIND來實現名字服務.BIND的服務端的軟件是被稱為named的守護進程

copyright © 萬盛學電腦網 all rights reserved