一、網域名稱系統介紹
1.網域名稱系統
網域名稱系統為一個分散式資料庫,它使本地負責控制整個分散式資料庫的部分段,每一段中的資料通過客戶,伺服器模式在整個網路上均可存取,通過採用複製技術和緩衝技術使得整個資料庫可靠的同時,又擁有良好的效能.
網域名稱伺服器包含資料庫的部分段的資訊,並可提供被稱之為解析器的客戶來訪問.
DNS的資料庫結構形成一個倒立的樹狀結構,根的名字用Null 字元串""來表示,但在文本中用"."來書寫.樹的每一個節點都表示整個分散式資料庫中的一個分區(域),每個域可再進一步劃分成子分區(域),每個域都有一個標籤(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的守護進程