1. 程式人生 > >詳解DNS域名解析全過程

詳解DNS域名解析全過程

關於dns域名解析大致過程如圖:

當一個使用者在位址列輸入www.taobao.com時,DNS解析有大致十個過程,如下:

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

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

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

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

4. 如果LDNS仍然沒有命中,就直接跳到Root Server 域名伺服器請求解析

5. 根域名伺服器返回給LDNS一個所查詢域的主域名伺服器(gTLD Server,國際頂尖域名伺服器,如.com .cn .org等)地址

6. 此時LDNS再發送請求給上一步返回的gTLD

7. 接受請求的gTLD查詢並返回這個域名對應的Name Server的地址,這個Name Server就是網站註冊的域名伺服器

8. Name Server根據對映關係表找到目標ip,返回給LDNS

9. LDNS快取這個域名和對應的ip

10. LDNS把解析的結果返回給使用者,使用者根據TTL值快取到本地系統快取中,域名解析過程至此結束