DNS是分布式數據庫,命名系統采用分層邏輯結構,像壹棵倒排樹。這種邏輯樹結構稱為域名空間。因為DNS劃分域名空間,所以組織可以用自己的域名空間創建DNS信息。註意:在DNS域名空間中,樹的最大深度不得超過127層,樹中每個節點最長可存儲63個字符。
名詞解釋
1.域和域名
DNS樹的每個節點代表壹個域。通過這些節點,整個域名空間被劃分成壹個層次結構。
域名空間中每個域名的名稱由域名表示。
域名:它通常由完全合格的域名(FQDN)來標識。FQDN可以準確的表示其相對於DNS域根的位置,即從節點到DNS根的完整表達。從節點到根,反過來寫,每個節點用“.”隔開對於DNS領域的谷歌來說,其完全官方的域名(FQDN)是google.com。
比如google是com域的子域,表示方法是google.com,而www是google域的子域,可以用www.google.com表示。
註意:FQDN壹般有嚴格的命名限制,長度不能超過256字節。只有字符a-z,0-9,A-Z和減號-。允許使用點號。它只允許用於域名之間(如google.com)或FQDN的結尾。
域名不區分大小。
從上到下可以分為:根域、頂級域、二級域、子域。
互聯網域名空間的最頂層是根域,根域記錄著互聯網的重要DNS信息,由互聯網域名註冊機構進行管理,由互聯網域名註冊機構將域名空間各部分的管理責任分配給所有接入互聯網的機構。
全球有13臺根服務器。
DNS根域下面是頂級域,也是由互聯網域名註冊機構管理的。* * *頂級域名有三種類型。
1.組織域:三個字符的代碼用於表示DNS域中包含的組織的主要功能或活動。比如com是商業組織,edu是教育組織,gov是政府組織,mil是軍事組織,net是網絡組織,org是非營利組織,int是國際組織。
2.地址域:兩個字符的國家或地區代碼。比如cn是中國,kr是韓國,us是美國。
3.反向域:這是壹個名為in-addr.arpa的特殊域,用來映射IP地址到名稱(反向查詢)。
對於頂級域的下屬域,互聯網域名註冊管理機構授權互聯網上的各類組織。當壹個組織獲得域名空間某壹部分的授權後,它負責命名所分配的域及其子域,包括域中的計算機和其他設備,並管理所分配的域中主機名和IP地址之間的映射信息。
2.地區
區域是DNS命名空間的壹部分,DNS命名空間包含壹組存儲在DNS服務器上的資源記錄。
使用區域的概念,DNS服務器在其自己的區域中回答有關主機的查詢,並且每個區域都有自己的授權服務器。
3.主域名服務器和輔助域名服務器
當區域的輔助服務器啟動時,它與區域的主服務器連接並開始傳輸。區域的輔助服務器定期與區域的主服務器通信,以檢查區域的數據是否已經改變。如果它已經改變,它開始數據更新傳輸。每個區域必須有壹個主服務器和至少壹個輔助服務器。否則,如果該區域的主服務器崩潰,將無法解析該區域的名稱。
輔助服務器的優勢:
1.容錯
配置輔助服務器後,即使區域的主服務器崩潰,客戶端仍然可以解析區域的名稱。壹般區域的主服務器和區域的輔服務器安裝在不同的子網上,這樣如果到壹個子網的連接中斷,DNS客戶端可以直接查詢另壹個子網的名稱服務器。
2.減少廣域鏈接的流量。
如果某個區域有大量的客戶端,用戶可以在該區域遠程添加輔助服務器,並配置遠程客戶端先查詢這些服務器,從而防止遠程客戶端通過慢速鏈接通信進行DNS查詢。
3.減少主服務器的負載
輔助服務器可以回答該區域中的查詢,從而減少該區域中的主服務器必須回答的查詢的數量。
4.DNS相關概念
1.DNS服務器
運行DNS服務器程序的計算機存儲DNS數據庫信息。DNS服務器將嘗試解析客戶端的查詢請求。
在回答查詢時,如果DNS服務器能夠提供所請求的信息,就會直接響應解析結果;如果DNS服務器沒有域名信息,它將向客戶端提供另壹個可以幫助解析查詢的服務器地址;如果以上兩種方法都失敗,它會響應客戶端沒有請求的信息或者請求的信息不存在。
2.DNS緩存
當DNS服務器解析客戶端的請求時,如果它在本地沒有DNS信息,它可以詢問其他DNS服務器。當其他域名服務器返回查詢結果時,DNS服務器會將結果記錄在本地緩存中,並使其成為DNS緩存。下次客戶端提交相同的請求時,DNS服務器可以直接使用緩存中的DNS信息進行解析。
DNS查詢過程:
看壹下DNS查詢過程:
通過八步解析過程,客戶端可以順利訪問到域名www.163.com,但在實際應用中,這個過程通常很快。
1.客戶端提交域名解析請求,並發送給本地域名服務器。
2.當本地域名服務器收到請求時,它首先查詢本地緩存。
如果有查詢的DNS信息記錄,將直接返回查詢結果。
如果沒有記錄,本地域名服務器向根域名服務器發送請求。
3.根域名服務器將查詢域的頂級域名服務器地址返回給本地域名服務器。
4.本地服務器正在向返回的域名服務器發送請求。
5.收到查詢請求的域名服務器查詢其緩存並記錄,如果有相關信息則返回客戶端的查詢結果,否則通知客戶端下級域名服務器的地址。
6.本地域名服務器向返回的DNS服務器發送查詢請求。
7.域名服務器返回本地服務器的查詢結果(如果域名服務器不包含查詢的DNS信息,查詢過程將重復步驟6和7,直到返回解析信息或解析失敗的響應)。
8.本地域名服務器將返回的結果保存到緩存中,並將結果返回給客戶端。
5.兩種查詢方法
遞歸查詢
遞歸查詢是DNS服務器的壹種查詢方式。在這種模式下,當DNS服務器收到客戶端的請求時,它必須用準確的查詢結果回復客戶端。如果DNS服務器沒有在本地存儲查詢DNS信息,服務器將查詢其他服務器,並將返回的查詢結果提交給客戶端。
叠代查詢
DNS服務器的另壹種查詢方式是叠代查詢。當客戶端發送查詢請求時,DNS服務器不直接回復查詢結果,而是告訴客戶端另壹個DNS服務器的地址,客戶端向這個DNS服務器提交請求,依次循環,直到返回查詢結果。
6.正向分析和反向分析
正向分析
正向解析是指從域名到IP地址的解析過程。
反分析
反向解析是從IP地址到域名的解析過程。反向解析的功能是服務器認證。
7.DNS資源記錄
1.SOA資源記錄(全地區唯壹)
每個區域在區域的開始處包含壹個授權記錄(SOA記錄)的開始。
SOA定義了域的全局參數,並設置了整個域的管理。區域文件中只允許唯壹的SOA記錄。
2.NS資源記錄
NS(名稱服務器)記錄是域名服務器記錄,用於指定哪個DNS服務器將解析域名。每個區域在區域的根目錄下至少包含壹個ns記錄。
3.資源記錄
地址(a)資源記錄將FQDN映射到IP地址。因為這個記錄,DNS服務器可以解析FQDN域名對應的IP地址。
4.PTR資源記錄
與A資源記錄相比,PTR記錄將IP地址映射到FQDN。用於反向查詢,通過IP地址找到域名。
5.CNAME資源記錄
別名記錄(CNAME)資源記錄為特定的FQDN創建別名。用戶可以使用CNAME記錄來隱藏用戶網絡的實現細節,這樣連接的客戶端就無法知道真實的域名。
舉例:ping百度時,解析到百度的別名服務器。百度有個別名cname=www.a.shifen.com
6.MX資源記錄
郵件交換(MX)資源記錄,它為DNS域名指定郵件交換服務器。
郵件交換服務器是為DNS域名處理或轉發郵件的主機。處理郵件是指將郵件發送到目的地或轉發給另壹個不同類型的郵件發送者。轉發郵件是指將郵件發送到最終目的地服務器,使用SMTP將郵件發送到離最終目的地最近的郵件交換服務器,或者將郵件排隊壹定時間。