1. 程式人生 > >淺談DNS域名解析過程

淺談DNS域名解析過程

網際網路是通過URL來發布和請求資源的,而URL中的域名需要解析成IP地址才能與遠端主機建立連線。當用戶在瀏覽器中輸入 www.baidu.com時,DNS會將域名解析成IP地址,然後再去匹配對應的IP地址。


步驟一:當在瀏覽器中輸入域名按下回車鍵後,瀏覽器會檢查快取中有沒有這個域名對應的解析過的IP地址。如果快取有,解析結束。瀏覽器快取域名在大小和時間上都是有限制的。快取時間可由TTL屬性來設定快取時間太長太短都不好,太長,會導致IP解析有變化,會導致域名不能正常解析,部分使用者無法訪問網站。快取時間太短,使用者每次都需要重新解析一次域名。

步驟二:如果使用者的瀏覽器中快取沒有,瀏覽器會查詢作業系統中是否有這個域名對應的DNS解析結果。其實作業系統中也會有一個域名解析的過程,在windows中可以通過c:\\windows\system32\drivers\etc\hosts檔案來設定,你可以將任何域名解析到任何能夠訪問的IP地址。(黑客劫持域名)步驟一和步驟二都是由本機完成的。

步驟三:當機無法完成域名解析,就會真正請求域名伺服器來解析這個域名了。我們怎樣知道域名伺服器?網路配置中都會有“DNS伺服器地址”作業系統會把這個域名傳送到設定中的LDNS,也就是本地的域名伺服器。DNS通常都會提供給你本地網際網路接入的一個DNS伺服器。比如你在學校,那麼這個DNS伺服器一定在你們學校。WIndows中可由ipconfig查詢這個地址。

步驟四:如果LDNS仍然沒有解析到,就直接到Root Service域名解析器請求解析

不周五:根域名伺服器返回給本地域名伺服器一個所查詢餘的主域名伺服器(gTLDServer)地址。gTLD是國際頂級域名伺服器,如:.com/.cn/.org等,全球只有13臺左右。

步驟六:本地域名伺服器(Local DNS Server)再向上一步返回的gTLD伺服器傳送請求

步驟七:接收請求的gTLD伺服器查詢並返回此域名對應的Name Server域名伺服器的地址,這個Name Server通常就是你註冊的域名伺服器(如你的域名供應商)

步驟八:Name Server域名伺服器會查詢儲存的域名和IP的對映關係表,正常情況下都根據域名得到目標IP記錄,連同一個TTL值返回給DNS Server域名伺服器

步驟九:返回該域名對應的IP和TTL值,Local DNS Server會快取這個域名和IP的對應關係,快取的時間有TTL值控制。

步驟十:把解析的結果返回給使用者,使用者根據TTL值快取在本地系統快取中,域名解析過程結束。

在實際的DNS解析過程中,可能還有更多的步驟,如Name Server也可能有多級,或者有一個GTM來負載均衡控制,都可能影響域名解析的過程。更多內容,可參考以下資料 本文參考書籍:《深入分析Java Web技術內幕