DNS原理及解析過程

2021-09-16 13:29:26 字數 2327 閱讀 6716

就是所謂的「.」,其實我們的**www.baidu.com在配置當中應該是www.baidu.com.(最後有一點),一般我們在瀏覽器裡輸入時會省略後面的點,而這也已經成為了習慣。

根域伺服器我們知道有13臺,但是這是錯誤的觀點。

根域伺服器只是具有13個ip位址,但機器數量卻不是13臺,因為這些ip位址借助了任播的技術,所以我們可以在全球設立這些ip的映象站點,你訪問到的這個ip並不是唯一的那台主機。

根域下來就是頂級域或者叫一級域,

有兩種劃分方式,一種網際網路剛興起時的按照行業性質劃分的com.,net.等,一種是按國家劃分的如cn.,jp.,等。

具體多少你可以自己去查,我們這裡不關心。

每個域都會有網域名稱伺服器,也叫權威網域名稱伺服器。

baidu.com就是乙個頂級網域名稱,而www.baidu.com卻不是頂級網域名稱,他是在baidu.com 這個域裡的一叫做www的主機。

一級域之後還有二級域,**域,只要我買了乙個頂級域,並且我搭建了自己bind伺服器(或者其他軟體搭建的)註冊到網際網路中,那麼我就可以隨意在前面多加幾個域了(當然長度是有限制的)。

比如a.www.baidu.com,在這個**中,www.baidu.com變成了乙個二級域而不是一台主機,主機名是a。

能提供網域名稱解析的伺服器,上面的記錄型別可以是a(address)記錄,ns記錄(name server),mx(mail),cname等

a記錄是什麼意思呢,就是記錄乙個ip位址和乙個主機名字,比如我這個網域名稱伺服器所在的域test.baidu.com,我們知道這是乙個二級的網域名稱,然後我在裡面有一條a記錄,記錄了主機為a的ip,查到了就返回給你了。

如果我現在要想baidu.com這個網域名稱伺服器查詢a.test.baidu.com,那麼這個頂級網域名稱伺服器就會發現你請求的這個**在test.baidu.com這個域中,我這裡記錄了這個二級域的網域名稱伺服器test.baidu.com的ns的ip。我返回給你這個位址你再去查主機為a的主機把。

這些域內的網域名稱伺服器都稱為權威伺服器,直接提供dns查詢服務。(這些伺服器可不會做遞迴哦)

一、主機向本地網域名稱伺服器的查詢一般都是採用遞迴查詢。所謂遞迴查詢就是:如果主機所詢問的本地網域名稱伺服器不知道被查詢的網域名稱的ip位址,那麼本地網域名稱伺服器就以dns客戶的身份,向其它根網域名稱伺服器繼續發出查詢請求報文(即替主機繼續查詢),而不是讓主機自己進行下一步查詢。因此,遞迴查詢返回的查詢結果或者是所要查詢的ip位址,或者是報錯,表示無法查詢到所需的ip位址。

二、本地網域名稱伺服器向根網域名稱伺服器的查詢的迭代查詢。迭代查詢的特點:當根網域名稱伺服器收到本地網域名稱伺服器發出的迭代查詢請求報文時,要麼給出所要查詢的ip位址,要麼告訴本地伺服器:「你下一步應當向哪乙個網域名稱伺服器進行查詢」。然後讓本地伺服器進行後續的查詢。根網域名稱伺服器通常是把自己知道的頂級網域名稱伺服器的ip位址告訴本地網域名稱伺服器,讓本地網域名稱伺服器再向頂級網域名稱伺服器查詢。頂級網域名稱伺服器在收到本地網域名稱伺服器的查詢請求後,要麼給出所要查詢的ip位址,要麼告訴本地伺服器下一步應當向哪乙個許可權網域名稱伺服器進行查詢。最後,知道了所要解析的ip位址或報錯,然後把這個結果返回給發起查詢的主機。

下圖給出了這兩種查詢的差別

瀏覽器先檢查自身快取中有沒有被解析過的這個網域名稱對應的ip位址,如果有,解析結束。同時網域名稱被快取的時間也可通過ttl屬性來設定。

如果瀏覽器快取中沒有(專業點叫還沒命中),瀏覽器會檢查作業系統快取中有沒有對應的已解析過的結果。而作業系統也有乙個網域名稱解析的過程。在windows中可通過c盤裡乙個叫hosts的檔案來設定,如果你在這裡指定了乙個網域名稱對應的ip位址,那瀏覽器會首先使用這個ip位址。

但是這種作業系統級別的網域名稱解析規程也被很多黑客利用,通過修改你的hosts檔案裡的內容把特定的網域名稱解析到他指定的ip位址上,造成所謂的網域名稱劫持。所以在windows7中將hosts檔案設定成了readonly,防止被惡意篡改。

如果至此還沒有命中網域名稱,才會真正的請求本地網域名稱伺服器(ldns)來解析這個網域名稱,這台伺服器一般在你的城市的某個角落,距離你不會很遠,並且這台伺服器的效能都很好,一般都會快取網域名稱解析結果,大約80%的網域名稱解析到這裡就完成了。

如果ldns仍然沒有命中,就直接跳到root server 網域名稱伺服器請求解析

根網域名稱伺服器返回給ldns乙個所查詢域的主網域名稱伺服器(gtld server,國際頂尖網域名稱伺服器,如.com .cn .org等)位址

此時ldns再傳送請求給上一步返回的gtld

name server根據對映關係表找到目標ip,返回給ldns

ldns快取這個網域名稱和對應的ip

ldns把解析的結果返回給使用者,使用者根據ttl值快取到本地系統快取中,網域名稱解析過程至此結束

DNS原理及過程

dns網域名稱系統,給網域名稱系統dns domain name system 是網際網路使用的命名系統,用來把便於人們使用的機器名字轉換成為ip位址。網域名稱系統其實就是名字系統。為什麼不叫 名字 而叫 網域名稱 呢?這是因為在這種網際網路的命名系統中使用了許多的 域 domain 因此就出現了 ...

DNS原理及其解析過程

dns原理及其解析過程 精彩剖析 什麼是dns?dns domain name system 是 網域名稱系統 的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於tcp ip網路,它所提供的服務是用來將主機名和網域名稱轉換為ip位址的工作。dns就是這樣的一位 翻譯官 它的基本工作...

DNS原理及其解析過程

什麼是dns?dns domain name system 是 網域名稱系統 的英文縮寫,是一種組織成域層次結構的計算機和網路服務命名系統,它用於tcp ip網路,它所提供的服務是用來將主機名和網域名稱轉換為ip位址的工作。dns就是這樣的一位 翻譯官 它的基本工作原理可用下圖來表示。dns網域名稱...