1 DNS原理
1.1 DNS簡介
DNS(Domain Name system)域名系統,在TCP/IP網絡中有非常重要的的地位,能夠提供域名與IP位址的解析服務。
1.2 域名空間
DNS是一個分布式資料庫,指令系統采用了層次的邏輯結構,如同一顆倒置的樹,這個邏輯的樹形結構成為域名空間,由于DNS劃分了域名空間,是以各機構可以使用自己的域名空間建立DNS資訊
注:DNS域名空間中,樹的最大深度不得超過127層,樹中每個節點最長可存儲63個字元。
(1) 域和域名
DNS樹的每個節點代表一個域,通過這些節點,對整個域名空間進行劃分,成為一個層次結構,域名空間的每個域的名字,通過域名進行表示,域名通常由一個完全正式域名(FQDN)辨別,FQDN能準确表示出其相對于DNS域樹根的位置,也就是節點到DNS域根的完整表述方式,從節點到樹根采用方向書寫,并将每個節點采用“.”分隔,對于DNS域itchenyi來說,其完全正式域名FQDN為itchenyi.com。
<a href="http://itchenyi.com/wp-content/uploads/2012/11/dns1.png"></a>
注意:通常,FQDN有嚴格的命名限制,長度不可超過256個位元組, 隻允許是用字元a-z,0-9,A-Z和減号(-)。點号(.)隻允許在域名标志之間,(例如“itchenyi.com”)或者FQDN的結尾使用。域名不區分大小寫。
2:Internet域名空間
<a href="http://itchenyi.com/wp-content/uploads/2012/11/dns2.png"></a>
Internet域名空間的最頂層是根域(root),其記錄着Internet的重要DNS資訊,由Internet域名注冊授權機構管理,該機構把域名空間各部分的管理責任配置設定給連接配接到Internet的各個組織。
DNS根域下面是頂級域,也由Internet域名注冊授權機構管理,共有三種類型的頂級域。
組織域:采用3個字元的代号,表示DNS域中所包含的組織的主要功能或活動,比如com為商業機構組織,edu為教育機構組織,gov為政府機構組織,mil為軍事機構組織,net為網絡機構組織,org為非營利機構組織,int為國際組織機構。
位址域:采用兩個字元的國家或地區代号,如cn為中國,kr為南韓,us為美國。
方向域:這是個特殊域,名字為in-addr.arpa,用于将IP位址映射到名字(反向查詢)。
對于頂級域的下級域,Internet域名注冊授權機構授權給Internet的各種組織,當一個組織獲得了對域名空間的某一部分的授權後,該組織就負責命名所配置設定的域及其子域,包括域中的計算機和其他裝置,并管理配置設定的域中主機名與IP位址的映射資訊。
1.3區(Zone)
區是DNS名稱空間的一個連續部分,其包含了一組存儲在DNS伺服器上的資源記錄,每個區都位于一個特殊的域節點,但區并不是域,DNS域是名稱空間的一個分支,而區一般是存儲在檔案中的DNS名稱空間的某一部分,可以包含多個域,一個域可以再分成幾個部分,每個部分或區可以由一台DNS伺服器控制,使用區的概念,DNS伺服器回答關于自己區中主機的查詢,它是哪個區的授權伺服器
1.4主域名伺服器和輔助域名伺服器
DNS伺服器可以不存儲任何區的資訊或者存儲一個或多個區的資訊,當DNS伺服器接收到DNS查詢時,他檢索它的本地區以定位所請求的資訊,如果因為伺服器不是所DNS域的授權伺服器,進而沒有所請求域的資料,而使用檢索失敗,伺服器就檢查它的高速緩存并與其他DNS伺服器通信以解析該請求,或者把用戶端送出給另一個可能知道答案的DNS伺服器。
DNS伺服器可以管理主區和輔助區,使用者可以把伺服器配置成管理多個不同的主區和輔助區,以盡量接近管理主區和輔助區,這意味着伺服器可能管理一個區的主拷貝和另一個區的輔助拷貝,或隻管理一個區的主拷貝和輔助拷貝,對每個區,管理其主區的計算機是該區的主伺服器,管理其輔助區的伺服器是該區的輔助伺服器。
主區的輔助伺服器啟動時,它與該區的主要伺服器進行連接配接并啟動一次區傳輸,區輔助伺服器定期與主要伺服器進行通信,檢視區資料是否更改,如果改變了,它就啟動一次區傳輸。
每個區必須有主伺服器,另外每個區至少要有一台輔助伺服器,否則如果該區的主伺服器崩潰了,就無法解析該區的名稱。
輔助伺服器的優點:
(1) 容錯能力
配置輔助伺服器後,在該主伺服器崩潰的情況下,客戶機仍能解析該區的名稱,一般把區的主伺服器和區的輔助伺服器安裝在不同的子網上,這樣如果到了一個子網的連接配接中斷,DNS客戶機還能直接查詢另一個子網上的名稱伺服器。
(2) 減少廣域鍊路上的通信量
如果某個區在遠端有大量客戶機,使用者就可以在遠端伺服器添加該區的輔助伺服器,并把遠端的客戶機配置成先查詢這些伺服器,這樣就能防止遠端客戶機通過慢速鍊路通信來進行DNS查詢。
(3)減輕主伺服器的負載
輔助伺服器能回答該區的查詢,進而減少該區主伺服器必須回答的查詢數。
1.6 DNS查詢原理及流程
(1)DNS相關概念
運作DNS服務程式的計算機,存儲DNS資料庫的資訊,DNS伺服器會嘗試解析客戶機的查詢請求,在解答查詢前,如果DNS伺服器能夠提供所請求的資訊,就直接回應解析結果,如果該DNS伺服器沒有相應的域名資訊,則為客戶機提供另一個能幫助解析查詢的伺服器位址,如果以上兩種方式均失敗,則回應客戶機沒有所請求的資訊或請求的資訊不存在。
(2)DNS緩存
DNS伺服器在解析客戶機請求時,如果本地沒有該DNS資訊,則會詢問其他DNS伺服器,當其他域名伺服器傳回查詢結果時,該DNS伺服器會将結果記錄在本地的緩存中,成為DNS緩存,當下一次客戶機送出相同請求時,DNS伺服器能夠直接使用緩存中的DNS資訊進行解析。
(3) 資源記錄
DNS伺服器的資訊資料,按照分類進行存儲,能夠解析用戶端的DNS請求
(4) 區檔案
包含區資源記錄的檔案,選擇DNS伺服器為授權伺服器,管理該區域,在大部分DNS實作中,用文本檔案實作區
遞歸查詢和疊代查詢
(1) 遞歸查詢
遞歸查詢是一種DNS伺服器的查詢模式,在該模式下的DNS伺服器接收到客戶機的請求後,必須使用一個準确的查詢結果回複客戶機,如果DNS伺服器本地沒有存儲查詢DNS資訊,那麼該伺服器會查詢其他伺服器,并将傳回的查詢結果交給客戶機。
(2) 疊代查詢
DNS伺服器另一種查詢方式為疊代查詢,DNS伺服器會向客戶機提供其他能夠解析查詢請求的DNS伺服器位址,當客戶機發送查詢請求時,DNS伺服器并不會直接回複查詢結果,而是告訴客戶機另一台DNS伺服器的位址,客戶機再向這台DNS伺服器送出請求,依次循環,直到傳回查詢的結果為止。
2 .DNS查詢流程
(1) DNS域名解析工作原理
<a href="http://itchenyi.com/wp-content/uploads/2012/11/dns3.png"></a>
<1>客戶機送出域名解析請求,并将該請求發送給本地的域名伺服器
<2>當本地的域名伺服器收到請求後,就先查詢本地緩存。如果有查詢的DNS記錄,則直接傳回查詢結果,如果沒有該記錄,本地域名伺服器就把請求發給根域名伺服器
<3>根域名伺服器再傳回給本地域名伺服器一個所查詢域的頂級域名伺服器位址
<4>本地伺服器再向傳回的頂級域名伺服器發送請求
<5>接收到該查詢請求的域名伺服器查詢其緩存和記錄,如果有相關資訊則直接傳回客戶機查詢結果,否則,通知客戶機下級域名伺服器的位址
<6>本地域名伺服器将查詢請求發送傳回的域名伺服器
<7>域名伺服器傳回本地伺服器查詢結果,(如果該域名伺服器不包含查詢的DNS資訊,查詢過程将重複<6><7>步驟,直到傳回解析資訊或解析失敗的回應)
<8>本地域名伺服器将傳回的結果儲存到緩存,并且将結果傳回給客戶機
(2) 域名解析執行個體
<a href="http://itchenyi.com/wp-content/uploads/2012/11/dns4.png"></a>
<3>根域名伺服器收到請求後,根據完全正式域名FQDN,判斷該域名為com域,查詢所有的con域DNS伺服器的資訊,并傳回給本地域名伺服器
<5>com域名伺服器接收到查詢請求後,判斷該域名屬于itchenyi.com域,通過查詢本地的記錄,列出管理itchenyi域名伺服器資訊,然後将查詢結果先傳回給本地的域名伺服器
<7>域名伺服器itchenyi.com收到請求後,查詢 DNS記錄中的www主機的資訊,并将結果傳回給本地域名伺服器
<8>本地域名伺服器将傳回的查詢結果儲存到DNS高速緩存,并且将結果傳回給客戶機!
正向解析和反向解析
(1) 正向解析
正向解析是指域名到IP位址的解析過程。
(2) 反向解析
反向解析是從IP位址到域名的解析過程,反向解析的作用為伺服器的身份驗證。
資源記錄
為了将名字解析成IP位址,伺服器查詢他們的區,(又叫DNS資料庫檔案或簡單資料庫檔案)。
區中包含組成相關DNS域資源資訊的資源記錄(RP)。例如,某些資源記錄把友好名字映射成IP位址,另一些則把IP位址映射到友好名字。
某些資源記錄不僅包括DNS域中伺服器的資訊,還可以定義域,即指定每台伺服器授權了哪些域,這些資源記錄就是SOA和NS資源記錄。
(SOA資源記錄)
每個區在區的開始處都包含了一個起始授權記錄(Start Authorrity Record)簡稱SOA記錄,SOA定義了域的全局參數,進行整個域的管理設定,一個區域檔案隻允許存在唯一的SOA記錄。
(NS資源記錄)
名稱伺服器(NS)資源記錄表示該區的授權伺服器,他們表示SOA資源記錄中指定的該區的主和輔助伺服器,也表示了任何授權的伺服器,沒個區在區根處至少包含一個NS記錄。
(A資源記錄)
位址(A)資源記錄把FQDN映射到IP位址,因而解析器能查詢FQDN對應的IP位址。
(PTR資源記錄)
相對于A資源記錄,指針(PTR)記錄把IP位址映射到了FQDN。
(CNAME資源記錄)
規範名字(CNAME)資源記錄建立特定FQDN的别名。使用者可以使用CNAME記錄來隐藏使用者網絡的實作細節,使連接配接的客戶機無法知道。
(MX資源記錄)
郵件交換(MX)資源記錄為DNS域名指定郵件交換伺服器,郵件交換伺服器是為DNS域名處理或轉發郵件的主機,處理郵件指把郵件投遞到目的或轉交另一個不同類型的郵件傳送者,轉發郵件指把郵件發送到目的伺服器,用簡單郵件傳輸SMTP把郵件發送離最終目的最近的郵件交換伺服器,或使郵件經過一定時間的排隊。
本文轉自 lgpqdwjh 51CTO部落格,原文連結:http://blog.51cto.com/itchenyi/1050793,如需轉載請自行聯系原作者