DNS基本教程
1 DNS 原理1.1 DNS 簡介DNS (Domain Name System )域名系統(tǒng),在TCP/IP網(wǎng)絡(luò)中有非常重要的地位,能夠提供域名與IP 地址的解析服務(wù)。1.2 域名空間DNS 是一個
1 DNS 原理
1.1 DNS 簡介
DNS (Domain Name System )域名系統(tǒng),在TCP/IP網(wǎng)絡(luò)中有非常重要的地位,能夠提供域名與IP 地址的解析服務(wù)。
1.2 域名空間
DNS 是一個分布式數(shù)據(jù)庫,命名系統(tǒng)采用層次的邏輯結(jié)構(gòu),如同一棵倒置的樹,這個邏輯的樹形結(jié)構(gòu)稱為域名空間,由于DNS 劃分了域名空間,所以各機構(gòu)可以使用自己的域名空間創(chuàng)建DNS 信息。
注:DNS 域名空間中,樹的最大深度不得超過127層,樹中每個節(jié)點最長可以存儲63個字符。
1)域和域名
DNS 樹的每個節(jié)點代表一個域,通過這些節(jié)點,對整個域名空間進行劃分,成為一個層次結(jié)構(gòu)。域名空間的每個域的名字,通過域名進行表示。域名通常由一個完全正式域名(FQDN )標識。F QDN 能準確表示出其相對于DNS 域樹根的位置,也就是節(jié)點到DNS 樹根的完整表述方式,從節(jié)點到樹根采用反向書寫,并將每個節(jié)點用“.”分隔,對于DNS 域google 來說,其完全正式域名(FQDN )為google.com 。
一個DNS 域可以包括主機和其他域(子域),每個機構(gòu)都擁有名稱空間的某一部分的授權(quán),負責該部分名稱空間的管理和劃分,并用它來命名DNS 域和計算機。例如,google 為com 域的子
,域,其表示方法為google.com ,而www 為google 域中的Web ,可以使用表示。

注意:通常,F(xiàn)QDN 有嚴格的命名限制,長度不能超過256字節(jié),只允許使用字符a-z,0-9,A-Z 和減號(-)。點號(. )只允許在域名標志之間(例如“google.com”)或者FQDN 的結(jié)尾使用。域名不區(qū)分大小。
2.Internet 域名空間
Internet 域名空間結(jié)構(gòu)為一棵倒置的樹,并進行層次劃分。由樹根到樹枝,也就是從DNS 根到下面的節(jié)點,按照不同的層次,進行了統(tǒng)一的命名。域名空間最頂層,DNS 根稱為根域(root )。根域的下一層為頂級域,又稱為一級域。其下層為二級域,再下層為二級域的子域,按照需要進行規(guī)劃,可以為多級。所以對域名空間整體進行劃分,由最頂層到下層,可以分成:根域、頂級
,域、二級域、子域。并且域中能夠包含主機和子域。主機www 的FQDN 從最下層到最頂層根域進行反寫,表示為。

Internet 域名空間的最頂層是根域(root ),其記錄著Inter net 的重要DNS 信息,由Internet 域名注冊授權(quán)機構(gòu)管理,該機構(gòu)把域名空間各部分的管理責任分配給連接到Internet 的各個組織。
DNS 根域下面是頂級域,也由Internet 域名注冊授權(quán)機構(gòu)管理。共有3種類型的頂級域。
組織域:采用3個字符的代號,表示DNS 域中所包含的組織的主要功能或活動。比如com 為商業(yè)機構(gòu)組織,edu 為教育機構(gòu)組織,gov 為政府機構(gòu)組織,mil 為軍事機構(gòu)組織,net 為網(wǎng)絡(luò)機構(gòu)組織,org 為非營利機構(gòu)組織,int 為國際機構(gòu)組織。
,地址域:采用兩個字符的國家或地區(qū)代號。如cn 為中國,kr 為韓國,us 為美國。
反向域:這是個特殊域,名字為in-addr.arpa ,用于將IP 地址映射到名字(反向查詢)。
對于頂級域的下級域,Internet 域名注冊授權(quán)機構(gòu)授權(quán)給Inte rnet 的各種組織。當一個組織獲得了對域名空間某一部分的授權(quán)后,該組織就負責命名所分配的域及其子域,包括域中的計算機和其他設(shè)備,并管理分配的域中主機名與IP 地址的映射信息。
1.3 區(qū)(Zone)
區(qū)是DNS 名稱空間的一個連續(xù)部分,其包含了一組存儲在DNS 服務(wù)器上的資源記錄。每個區(qū)都位于一個特殊的域節(jié)點,但區(qū)并不是域。DNS 域是名稱空間的一個分支,而區(qū)一般是存儲在文件中的DNS 名稱空間的某一部分,可以包括多個域。一個域可以再分成幾部分,每個部分或區(qū)可以由一臺DNS 服務(wù)器控制。使用區(qū)的概念,DNS 服務(wù)器回答關(guān)于自己區(qū)中主機的查詢,它是哪個區(qū)的授權(quán)服務(wù)器。
1.4 主域名服務(wù)器與輔助域名服務(wù)器
DNS 服務(wù)器可以不存儲任何區(qū)的信息或者存儲一個或多個區(qū)的信息。當DNS 服務(wù)器接收到DNS 查詢時,它檢索它的本地區(qū)以定位所請求的信息。如果因為服務(wù)器不是所DNS 域的授權(quán)服務(wù)器,從而沒有所請求域的數(shù)據(jù)而使用檢索失敗,服務(wù)器就檢查它
,的高速緩存并與其他DNS 服務(wù)器通信以解析該請求,或者把客戶機提交給另一個可能知道答案的DNS 服務(wù)器。
DNS 服務(wù)器可以管理主區(qū)和輔助區(qū)。用戶可以把服務(wù)器配置成管理多個不同的主區(qū)和輔助區(qū),以盡量接近實際情況,這意味著服務(wù)器可能管理一個區(qū)的主拷貝和另一個區(qū)的輔助拷貝,或只管理一個區(qū)的主拷貝和輔助拷貝。對每個區(qū),管理其主區(qū)的計算機是該區(qū)的主服務(wù)器,管理其輔助區(qū)的服務(wù)器是該區(qū)的輔助服務(wù)器。 主區(qū)是本地更新的,在區(qū)數(shù)據(jù)改變時,例如把該區(qū)的某個部分授權(quán)給另一臺DNS 服務(wù)器,或在區(qū)中添加資源記錄,這些改動必須在該區(qū)的主DNS 服務(wù)器上進行,以便新信息能加進本地區(qū)。 相反,輔助區(qū)是從其他服務(wù)器復制的。在輔助服務(wù)器上定義區(qū)時,區(qū)配置有服務(wù)器的IP ,輔助區(qū)就是從該地址復制信息。復制區(qū)文件的服務(wù)器可以是該區(qū)的主服務(wù)器或輔助服務(wù)器,有時稱為輔助區(qū)的主控服務(wù)器。
當區(qū)的輔助服務(wù)器啟動時,它與該區(qū)的主控服務(wù)器進行連接并啟動一次區(qū)傳輸,區(qū)輔助服務(wù)器定期與區(qū)主控服務(wù)器通信,查看區(qū)數(shù)據(jù)是否改變。如果改變了,它就啟動一次區(qū)傳輸。
每個區(qū)必須有主服務(wù)器,另外每個區(qū)至少要有一臺輔助服務(wù)器,否則如果該區(qū)的主服務(wù)器崩潰了,就無法解析該區(qū)的名稱。 輔助服務(wù)器的優(yōu)點:
1)容錯能力
,配置輔助服務(wù)器后,在該區(qū)主服務(wù)器崩潰的情況下,客戶機仍能解析該區(qū)的名稱。一般把區(qū)的主服務(wù)器和區(qū)的輔助服務(wù)器安裝在不同子網(wǎng)上,這樣如果到一個子網(wǎng)的連接中斷,DNS 客戶機還能直接查詢另一個子網(wǎng)上的名稱服務(wù)器。
2)減少廣域鏈路的通信量
如果某個區(qū)在遠程有大量客戶機,用戶就可以在遠程添加該區(qū)的輔助服務(wù)器,并把遠程的客戶機配置成先查詢這些服務(wù)器,這樣就能防止遠程客戶機通過慢速鏈路通信來進行DNS 查詢。
3)減輕主服務(wù)器的負載
輔助服務(wù)器能回答該區(qū)的查詢,從而減少該區(qū)主服務(wù)器必須回答的查詢數(shù)。
1.6 DNS 查詢原理及流程
1)DNS 相關(guān)概念
(1)DNS 服務(wù)器
運行DNS 服務(wù)器程序的計算機,儲存DNS 數(shù)據(jù)庫信息。DNS 服務(wù)器會嘗試解析客戶機的查詢請求。在解答查詢時,如果DNS 服務(wù)器能提供所請求的信息,就直接回應(yīng)解析結(jié)果,如果該DNS 服務(wù)器沒有相應(yīng)的域名信息,則為客戶機提供另一個能幫助解析查詢的服務(wù)器地址,如果以上兩種方法均失敗,則回應(yīng)客戶機沒有所請求的信息或請求的信息不存在。
(2)DNS 緩存
,DNS 服務(wù)器在解析客戶機請求時,如果本地沒有該DNS 信息,則可以會詢問其他DNS 服務(wù)器,當其他域名服務(wù)器返回查詢結(jié)果時,該DNS 服務(wù)器會將結(jié)果記錄在本地的緩存中,成為DNS 緩存。當下一次客戶機提交相同請求時,DNS 服務(wù)器能夠直接使用緩存中的DNS 信息進行解析。
(3)資源記錄
DNS 服務(wù)器的信息數(shù)據(jù),按照分類進行存儲,能夠解析客戶端的DNS 請求。
(4)區(qū)文件
包含區(qū)資源記錄的文件,選擇DNS 服務(wù)器為授權(quán)服務(wù)器,管理該區(qū)域。在大部分DNS 實現(xiàn)中,用文本文件實現(xiàn)區(qū)。
2)遞歸查詢和迭代查詢
(1)遞歸查詢
遞歸查詢是一種DNS 服務(wù)器的查詢模式,在該模式下DNS 服務(wù)器接收到客戶機請求,必須使用一個準確的查詢結(jié)果回復客戶機。如果DNS 服務(wù)器本地沒有存儲查詢DNS 信息,那么該服務(wù)器會詢問其他服務(wù)器,并將返回的查詢結(jié)果提交給客戶機。
(2)迭代查詢
DNS 服務(wù)器另外一種查詢方式為迭代查詢,DNS 服務(wù)器會向客戶機提供其他能夠解析查詢請求的DNS 服務(wù)器地址,當客戶機發(fā)送查詢請求時,DNS 服務(wù)器并不直接回復查詢結(jié)果,而是告訴客
,戶機另一臺DNS 服務(wù)器地址,客戶機再向這臺DNS 服務(wù)器提交請求,依次循環(huán)直到返回查詢的結(jié)果為止。
3)DNS 查詢流程
(1)DNS 域名解析工作原理

<1> 客戶機提交域名解析請求,并將該請求發(fā)送給本地的域名服務(wù)器。
<2> 當本地的域名服務(wù)器收到請求后,就先查詢本地的緩存。如果有查詢的DNS 信息記錄,則直接返回查詢的結(jié)果。如果沒有該記錄,本地域名服務(wù)器就把請求發(fā)給根域名服務(wù)器。
<3> 根域名服務(wù)器再返回給本地域名服務(wù)器一個所查詢域的頂級域名服務(wù)器的地址。
<4> 本地服務(wù)器再向返回的域名服務(wù)器發(fā)送請求。
<5> 接收到該查詢請求的域名服務(wù)器查詢其緩存和記錄,如果有相關(guān)信息則返回客戶機查詢結(jié)果,否則通知客戶機下級的域名服務(wù)器的地址。
,<6> 本地域名服務(wù)器將查詢請求發(fā)送給返回的DNS 服務(wù)器。
<7> 域名服務(wù)器返回本地服務(wù)器查詢結(jié)果(如果該域名服務(wù)器不包含查詢的DNS 信息,查詢過程將重復<6>、<7>步驟,直到返回解析信息或解析失敗的回應(yīng))。
<8> 本地域名服務(wù)器將返回的結(jié)果保存到緩存,并且將結(jié)果返回給客戶機。
(2)域名解析實例
假設(shè)客戶機使用電信ADSL 接入Internet ,電信為其分配的D NS 服務(wù)器地址為219.141.140.10,域名解析過程如下

~
,<1> 客戶機向本地的域名服務(wù)器219.141.140.10發(fā)送解析
<2> 當本地的域名服務(wù)器收到請求后,就先查詢本地的緩存。如果有查詢的DNS 信息記錄,則直接返回查詢的結(jié)果。如果沒有該記錄,本地域名服務(wù)器就把解析請求發(fā)給根域名服務(wù)器。
<3> 根域名服務(wù)器收到請求后,根據(jù)完全正式域名FQDN ,判斷該域名屬于com 域,查詢所有的com 域DNS 服務(wù)器的信息,并返回給本地域名服務(wù)器。
<4> 本地域名服務(wù)器219.141.140.10收到回應(yīng)后,先保存返回的結(jié)果,再選擇一臺com 域的域名服務(wù)器,向其提交解析域名
<5> com 域名服務(wù)器接收到該查詢請求后,判斷該域名屬于g oogle.com 域,通過查詢本地的記錄,列出管理google 域的域名服務(wù)器信息,然后將查詢結(jié)果返回給本地的域名服務(wù)器219. 141.140.10。
<6> 本地域名服務(wù)器219.141.140.10收到回應(yīng)后,先緩存返回的結(jié)果,再向google.com 域的服務(wù)器發(fā)出請求解析域名
<7> 域名服務(wù)器google.com 收到請求后,查詢DNS 記錄中的www 主機的信息,并將結(jié)果返回給本地服務(wù)器219.141.140.10。