DNS解析過程
1.DNS解析過程
1.首先由瀏覽器查詢自身的DNS緩存,如果由就直接訪問
2.如果沒有,則查詢本機操作系統的 host文件(裏面存著ip->域名的映射)
3.如果還沒有,則主機向本地DNS服務器(ISP服務器,或自己手動設置的DNS服務器,如谷歌的8.8.8.8和阿裏雲的223.5.5.5都是DNS服務器)發起查詢。
-----------------------------------------------------------------------------------------------
4.本地DNS服務器收到請求後,會查詢自身的DNS緩存,如果緩存中沒有,則向根DNS服務器發起請求(根DNS服務器的IP地址存儲在每一個DNS服務器的磁盤中
5.根服務器拿到這個請求後,知道該域名是com.這個頂級域名下的,所以就會返回com域中的NS記錄。(詳解參見博客:域名解析中A記錄、CNAME、MX記錄、NS記錄的區別和聯系)
6.然後本地DNS向其中的一臺頂級DNS服務器再次發起請求,com域的頂級DNS服務器發現這個請求是baidu.com這個域的,然後返回baidu.com域的NS記錄。
7.本地DNS不厭其煩的再次向baidu.com這個域的權威服務器發起請求,baidu.com收到之後,查了下發現www不是一臺主機,而是一個CNAME(別名)。這時dns.bai.com會返回一個別名www.a.shifen.com以及這個別名對應的DNS服務器地址ns2.a.shifen.com。
8.本地DNS再次發起請求,DNS服務器接到請求後,發現www.a.shifen.com對應的是一個A記錄(即IP),就把這個IP返回。
9.最後本地DNS拿到了IP之後,將其返回給了主機客戶端,並且把這個IP和域名的映射保存在緩存中,當下次再有對www.baidu.com的DNS請求就可以直接返回了(即上面的第三步)。
(參考:http://blog.chinaunix.net/uid-28216282-id-3757849.html)
2.叠代查詢和遞歸查詢的區別
主機到本地DNS服務器的查詢屬於遞歸查詢。(本地服務器會幫主機進行DNS查詢,這一步對主機是透明的。因此是屬於遞歸)
本地DNS服務器到其他的查詢屬於叠代查詢。(叠代的查詢IP)
(分割線之前的查詢由用戶主機發起,屬於遞歸查詢;之後的查詢由本地DNS服務器發起,屬於叠代查詢)
3.域名服務器的層級
(權限域名服務器也叫權威域名服務器)
根域名服務器:最高層次的域名服務器,也是最重要的域名服務器。所有的根域名服務器都知道所有的頂級域名服務器的域名和IP地址。不管是哪一個本地域名服務器,若要對因特網上任何一個域名進行解析,只要自己無法解析,就首先求助根域名服務器。所以根域名服務器是最重要的域名服務器。假定所有的根域名服務器都癱瘓了,那麽整個DNS系統就無法工作。需要註意的是,在很多情況下,根域名服務器並不直接把待查詢的域名直接解析出IP地址,而是告訴本地域名服務器下一步應當找哪一個頂級域名服務器進行查詢。
頂級域名服務器:負責管理在該頂級域名服務器註冊的二級域名。
權限域名服務器:負責一個“區”的域名服務器。
本地域名服務器:本地服務器不屬於下圖的域名服務器的層次結構,但是它對域名系統非常重要。當一個主機發出DNS查詢請求時,這個查詢請求報文就發送給本地域名服務器。
DNS解析過程