DNS遞迴查詢與迭代查詢

2021-09-24 20:16:16 字數 3026 閱讀 7633

注:一般tcp/ip的應用層或者osi的會話、表示、應用層把資料稱為資料或者資訊,到了傳輸層把資料稱為報文,到了最底層就是位元流了也就是位元組流

1.網域名稱系統

2.網域名稱伺服器

1.在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個**對映關係,如果有,就先呼叫這個ip位址對映,完成網域名稱解析。

2.如果hosts裡沒有這個網域名稱的對映,則查詢本地dns解析器快取,是否有這個**對映關係,如果有,直接返回,完成網域名稱解析。

3.如果hosts與本地dns解析器快取都沒有相應的**對映關係,首先會找tcp/ip引數中設定的首選dns伺服器,在此我們叫它本地dns伺服器,

此伺服器收到查詢時,如果要查詢的網域名稱,包含在本地配置區域資源中,則返回解析結果給客戶機,完成網域名稱解析,此解析具有權威性。

4.如果要查詢的網域名稱,不由本地dns伺服器區域解析,但該伺服器已快取了此**對映關係,則呼叫這個ip位址對映,完成網域名稱解析,此解析不具有權威性。

5.如果本地dns伺服器本地區域檔案與快取解析都失效,則根據本地dns伺服器的設定(是否設定**器)進行查詢,

如果未用**模式,本地dns就把請求發至 「根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伺服器再返回給客戶機。

一、主機向本地網域名稱伺服器的查詢一般都是採用遞迴查詢。

向其它根網域名稱伺服器繼續發出查詢請求報文(即替主機繼續查詢),而不是讓主機自己進行下一步查詢。

因此,遞迴查詢返回的查詢結果或者是所要查詢的ip位址,或者是報錯,表示無法查詢到所需的ip位址。

二、本地網域名稱伺服器向根網域名稱伺服器的查詢的迭代查詢。

然後讓本地伺服器進行後續的查詢。根網域名稱伺服器通常是把自己知道的頂級網域名稱伺服器的ip位址告訴本地網域名稱伺服器,讓本地網域名稱伺服器再向頂級網域名稱伺服器查詢。

最後,知道了所要解析的ip位址或報錯,然後把這個結果返回給發起查詢的主機

遞迴:客戶端只發一次請求,要求對方給出最終結果。

迭代:客戶端發出一次請求,對方如果沒有授權回答,它就會返回乙個能解答這個查詢的其它名稱伺服器列表,

客戶端會再向返回的列表中發出請求,直到找到最終負責所查網域名稱的名稱伺服器,從它得到最終結果。

授權回答:向dns伺服器查詢乙個網域名稱,剛好這個網域名稱是本伺服器負責,返回的結果就是授權回答。

從遞迴和迭代查詢可以看出:

客戶端-本地dns服務端:這部分屬於遞迴查詢。

本地dns服務端---外網:這部分屬於迭代查詢。

遞迴查詢時,返回的結果只有兩種:查詢成功或查詢失敗.

迭代查詢,又稱作重指引,返回的是最佳的查詢點或者主機位址.

相關的工具和命令: dig,nslookup,host等.其中以dig命令的功能最為強大和靈活.

dig命令典型應用形如: 

dig  @server   name  type

@server:指定網域名稱伺服器

name:指定查詢請求資源的網域名稱

type:指定查詢型別,如a、cname、srv、mx、sig等,如果不指定type,預設為a

查詢某個網域名稱解析的全過程:(此時為迭代查詢)

$ dig @8.8.8.8  163.com +trace
簡單來說,一條網域名稱的dns記錄會在本地有兩種快取:瀏覽器快取和作業系統(os)快取。在瀏覽器中訪問的時候,會優先訪問瀏覽器快取,

如果未命中則訪問os快取,最後再訪問dns伺服器(一般是isp提供),然後dns伺服器會遞迴式的查詢網域名稱記錄,然後返回。

dns記錄會有乙個ttl值(time to live),單位是秒,意思是這個記錄最大有效期是多少。經過實驗,os快取會參考ttl值,但是不完全等於ttl值,

而瀏覽器dns快取的時間跟ttl值無關,每種瀏覽器都使用乙個固定值。

這裡有一篇文章,做過詳細的測試why web browser dns caching can be a bad thing:

windows訪問dns後會把記錄儲存一段短暫的時間,

可通過ipconfig /displaydns 檢視windows的dns快取、通過ipconfig /flushdns來清除。

dns迭代查詢和遞迴查詢

遞迴查詢 返回的結果必須是 所查網域名稱和對應ip的對映關係 或者 查詢未果 迭代查詢 返回的結果可以是其他dns伺服器的ip 遞迴查詢和迭代查詢另乙個區別是每次做查詢的時候 發起查詢的 角色不同 對於遞迴查詢,一般是本地的客戶端,本地的客戶端檢視本地hosts檔案或者快取未找到後,會向本地dns伺...

DNS的遞迴查詢和迭代查詢

1 遞迴查詢 遞迴查詢是一種dns 伺服器的查詢模式,在該模式下dns 伺服器接收到客戶機請求,必須使用乙個準確的查詢結果回覆客戶機。如果dns 伺服器本地沒有儲存查詢dns 資訊,那麼該伺服器會詢問其他伺服器,並將返回的查詢結果提交給客戶機。客戶機和伺服器之間的查詢是遞迴查詢 是遞迴查詢告訴客戶機...

DNS 中遞迴查詢與迭代查詢的區別

給你打個比方。你是一台pc主機,你的老師是一台dns伺服器。你有乙個數學問題 也就是dns查詢請求 不會,於是諮詢你的老師,王老師。他如果會,則直接告訴你 如果不會,那麼他有幾種方法尋找答案。1 遞迴查詢 王老師問宋校長 即根域dns 宋校長他不會,於是去問數學教學組的張教授 即一級dns 張教授他...