DNS原理及其解析過程



 

網絡通訊大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,所以計算機在網絡上進行通訊時只能識別如“202.96.134.133” 之類的IP地址,而不能認識域名。我們無法記住10個以上IP地址的網站,所以我們訪問網站時,更多的是在瀏覽器地址欄中輸入域名,就能看到所需要的頁 面,這是因為有一個叫“DNS服務器”的計算機自動把我們的域名“翻譯”成了相應的IP地址,然后調出IP地址所對應的網頁。

什么是DNS?
    DNS( Domain Name System)是“域名系統”的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,它用於TCP/IP網絡,它所提供的服務是用來將主機名和 域名轉換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。

DNS域名稱
    域名系統作為一個層次結構和分布式數據庫,包含各種類型的數據,包括主機名和域名。DNS數據庫中的名稱形成一個分層樹狀結構稱為域命名空間。域名包含單個標簽分隔點,例如:im.qq.com。
完全限定的域名 (FQDN) 唯一地標識在 DNS 分層樹中的主機的位置,通過指定的路徑中點分隔從根引用的主機的名稱列表。 下圖顯示與主機稱為 im 內 qq.com DNS 樹的示例。 主機的 FQDN 是 im.qq.com。
DNS 域的名稱層次結構

DNS域名稱空間的組織方式
    按其功能命名空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中,以及與每個名稱類型的示例。

DNS 和 Internet 域
    互聯網域名系統由名稱注冊機構負責維護分配由組織和國家/地區的頂級域在 Internet 上進行管理。 這些域名按照國際標准 3166。 一些很多現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的DNS域名稱如下圖:

資源記錄
    DNS 數據庫中包含的資源記錄 (RR)。 每個 RR 標識數據庫中的特定資源。我們在建立DNS服務器時,經常會用到SOA,NS,A之類的記錄,在維護DNS服務器時,會用到MX,CNAME記錄。
常見的RR見下圖:

Dns服務的工作過程
當 DNS 客戶機需要查詢程序中使用的名稱時,它會查詢本地DNS 服務器來解析該名稱。客戶機發送的每條查詢消息都包括3條信息,以指定服務器應回答的問題。
● 指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。
● 指定的查詢類型,它可根據類型指定資源記錄,或作為查詢操作的專門類型。
● DNS域名的指定類別。
    對於DNS 服務器,它始終應指定為 Internet 類別。例如,指定的名稱可以是計算機的完全合格的域名,如im.qq.com,並且指定的查詢類型用於通過該名稱搜索地址資源記錄。
    DNS 查詢以各種不同的方式進行解析。客戶機有時也可通過使用從以前查詢獲得的緩存信息就地應答查詢。DNS 服務器可使用其自身的資源記錄信息緩存來應答查詢,也可代表請求客戶機來查詢或聯系其他 DNS 服務器,以完全解析該名稱,並隨后將應答返回至客戶機。這個過程稱為遞歸。
    另外,客戶機自己也可嘗試聯系其他的 DNS 服務器來解析名稱。如果客戶機這么做,它會使用基於服務器應答的獨立和附加的查詢,該過程稱作迭代,即DNS服務器之間的交互查詢就是迭代查詢。
DNS 查詢的過程如下圖所示。

1、在瀏覽器中輸入www.qq.com域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關系,如果有,就先調用這個IP地址映射,完成域名解析。 

2、如果hosts里沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關系,如果有,直接返回,完成域名解析。 

3、如果hosts與本地DNS解析 器緩存都沒有相應的網址映射關系,首先會找TCP/ip參數中設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的 域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。 

4、如果要查詢的域名,不由本地DNS服務器區域解析,但該服務器已緩存了此網址映射關系,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。 

5、如果本地DNS服務器本地區域文 件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13台根DNS,根DNS服務 器收到請求后會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名服務器的一個IP。本地DNS服務器收到IP信息后,將會聯系負 責.com域的這台服務器。這台負責.com域的服務器收到請求后,如果自己無法解析,它就會找一個管理.com域的下一級DNS服務器地址 (qq.com)給本地DNS服務器。當本地DNS服務器收到這個地址后,就會找qq.com域服務器,重復上面的動作,進行查詢,直至找到 www.qq.com主機。 

6、如果用的是轉發模式,此DNS服 務器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根DNS或把轉請求轉至上上級,以此循環。不管是本地 DNS服務器用是是轉發,還是根提示,最后都是把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。

    從客戶端到本地DNS服務器是屬於遞歸查詢,而DNS服務器之間就是的交互查詢就是迭代查詢。

附錄:
本地DNS配置轉發與未配置轉發數據包分析
    新建一DNS,具體怎么建我這里就不再描述了,見我的上一篇博文《在Win2003中安裝bind【部署智能DNS】》
1、DNS服務器不設轉發
    在192.168.145.228服務器上安裝上wireshark軟件,並打開它,設置數據包為UDP過濾,在192.168.145.12客戶機上用 nslookup命令查詢一下www.sohu.com,馬上可以看到本地DNS服務器直接查全球13台根域中的某幾台,然后一步步解析,通過遞代的方 式,直到找到www.sohu.com對應的IP為220.181.118.87。
    本地DNS服務器得到www.sohu.com的IP后,它把這個IP返回給192.168.145.12客戶機,完成解析。

2、DNS服務器設置轉發

    因www.sohu.com域名在第一步的驗證中使用過,有緩存,為了不受上步實驗干擾,我們在客戶機上192.168.145.12上nslookup www.baidu.com。從圖上看,本地DNS把請求轉發至192.168.133.10服務器,133.10服務器把得到的IP返回給本地DNS, 然后本地DNS再把IP告訴DNS客戶機,完成解析。

 


        DNS的工作原理及過程

DNS的工作原理及過程分下面幾個步驟:
        第一步:客戶機提出域名解析請求,並將該請求發送給本地的域名服務器。
        第二步:當本地的域名服務器收到請求后,就先查詢本地的緩存,如果有該紀錄項,則本地的域名服務器就直接把查詢的結果返回。 
        第三步:如果本地的緩存中沒有該紀錄,則本地域名服務器就直接把請求發給根域名服務器,然后根域名服務器再返回給本地域名服務器一個所查詢域(根的子域) 的主域名服務器的地址。
        第四步:本地服務器再向上一步返回的域名服務器發送請求,然后接受請求的服務器查詢自己的緩存,如果沒有該紀錄,則返回相關的下級的域名服務器的地址。
        第五步:重復第四步,直到找到正確的紀錄。
        第六步:本地域名服務器把返回的結果保存到緩存,以備下一次使用,同時還將結果返回給客戶機。
    讓 我們舉一個例子來詳細說明解析域名的過程。假設我們的客戶機如果想要訪問站點: www.element.org , 此客戶本地的域名服務器 是 dns.company.com , 一個根域名服務器是 ns.inter.net ,所要訪問的網站的域名服務器 是 dns.element.org ,域名解析的過程如下所示: 

      1. 客戶機發出請求解析域名 www.element.org 的報文; 
      2. 本地的域名服務器收到請求后,查詢本地緩存,假設沒有該紀錄,則本地域名服務器 dns.company.com 則向根域名服務器 ns.inter.net 發出請求解析域名 www.element.org ; 
      3. 根 域名服務器 ns.inter.net 收到請求后查詢本地記錄得到如下結果:element.org NS dns.element.org (表 示 element.org 域中的域名服務器為:dns.element.org ),同時給出 dns.element.org 的地址,並將結果返 回給域名服務器 dns.company.com ; 
      4. 域名服務器 dns.company.com 收到回應后,再發出請求解析域名 www.element.org 的報文; 
      5. 域 名服務器 dns.element.org 收到請求后,開始查詢本地的記錄,找到如下一條記 錄: www.element.org A 211.120.3.12 (表示 element.org 域中域名服務 器 dns.element.org 的IP地址為:211.120.3.12),並將結果返回給客戶本地域名服務 器 dns.company.com ; 
      6. 客戶本地域名服務器將返回的結果保存到本地緩存,同時將結果返回給客戶機。
        這樣就完成了一次域名解析過程

 

        域名服務器分類

緩存域名服務器
(1) 也稱為 高速緩存服務器
(2) 通過向其他域名服務器查詢獲得域名->IP地址記錄
(3) 將域名查詢結果緩存到本地,提高重復查詢時的速度

主域名服務器
(1) 特定DNS區域的官方服務器,具有唯一性,權威性
(2) 負責維護該區域內所有域名->IP地址的映射記錄

從域名服務器
(1) 也稱為輔助域名服務器,非權威域名服務器
(2) 具備容錯功能,其維護的 域名->IP地址記錄 來源於主域名服務器

現在的服務器都用到了緩存+主或者 緩存+輔

本文出自 “系統網絡運維” 博客,請務必保留此出處http://369369.blog.51cto.com/319630/812889


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM