DNS域名解析流程

DNS基本概念

根域

根域即常說的“.”,如百度網址www.baidu.com,其真實域名應該是www.baidu.com.(最後有一點),但爲了方便,一般在瀏覽器輸入時會省略後面的點,這現在也已經成爲了用戶的習慣。

根域服務器具有13個IP地址,但機器數量卻不是13臺,因爲這些IP地址藉助了任播的技術,所以可以在全球設立這些IP的鏡像站點,用戶訪問到的這個IP並不是唯一的那臺主機。

域的劃分

根域以下就是頂級域或者叫一級域,有兩種劃分方式,一種互聯網剛興起時按照行業性質劃分的com.,net.等,一種是按國家劃分的如cn.,jp.等。

每個域都會有域名服務器,也叫權威域名服務器。

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

一級域之後還有二級域,三級域,如果用戶買了一個頂級域,並且搭建了自己的BIND服務器(或者其他軟件搭建的)並註冊到互聯網中,那麼他就可以隨意在前面多加幾個域(當然長度是有限制的)。

域名服務器

域名服務器是能提供域名解析的服務器,上面的記錄類型可以是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這個域中,baidu.com域名服務器裏記錄了這個二級域的域名服務器test.baidu.com的NS的IP,查詢時會把NS的IP返回給用戶,用戶通過這個IP再去查a主機的地址。

這些域內的域名服務器都稱爲權威服務器,直接提供DNS查詢服務。(這些服務器不會做遞歸)

解析過程

下面簡述一下常見的域名解析過程:

  1. 現在有一臺計算機,通過ISP接入了互聯網,那麼ISP就會給它分配一個DNS服務器,這個DNS服務器不是權威服務器,而是相當於一個代理的DNS解析服務器,它會幫PC迭代權威服務器返回的應答,然後把最終查到IP返回給PC;
  2. 此時計算機要向這臺ISPDNS發起請求查詢www.baidu.com這個域名(這裏其實準確來說不是ISPDNS,而應該是用戶自己電腦網絡設置裏的DNS,並不一定是ISPDNS,如設置成8.8.8.8);
  3. ISPDNS拿到請求後,先檢查一下本地緩存中有沒有這個地址,如果有就直接返回。這個時候拿到的IP地址,會被標記爲非權威服務器的應答;
  4. 如果緩存中沒有,ISPDNS會從配置文件裏面讀取13個根域名服務器的地址(這些地址是不變的,直接在BIND的配置文件中);
  5. 然後向其中一臺發起請求;
  6. 根服務器拿到這個請求後,知道是com.這個頂級域名下的,所以就會返回com域中的NS記錄,一般來說是13臺主機名和IP。
  7. 然後ISPDNS向其中一臺再次發起請求,com域的服務器發現這請求是baidu.com這個域的,並且查到了這個域的NS,於是就將其IP返回回去(目前百度有4臺baidu.com的頂級域名服務器);
  8. ISPDNS再次向baidu.com這個域的權威服務器發起請求,baidu.com收到之後,查找www主機,並把主機IP返回給ISPDNS;
  9. ISPDNS拿到了之後,將其返回給了客戶端,並且把這個IP保存在高速緩存中。

 

至此,整個域名解析過程完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章