dns解析整個過程大體描述如下,其中前兩個步驟是在本機完成的,後8個步驟涉及到真正的網域名稱解析伺服器:
1.: 瀏覽器會檢查快取中有沒有這個網域名稱對應的解析過的ip位址,如果快取中有,這個解析過程就結束。瀏覽器快取網域名稱也是有限制的,不僅瀏覽器快取大小有限制,而且快取的時間也有限制,通常情況下為幾分鐘到幾小時不等,網域名稱被快取的時間限制可以通過ttl屬性來設定。這個快取時間太長和太短都不太好,如果時間太長,一旦網域名稱被解析到的ip有變化,會導致被客戶端快取的網域名稱無法解析到變化後的ip位址,以致該網域名稱不能正常解析,這段時間內有一部分使用者無法訪問**。如果設定時間太短,會導致使用者每次訪問**都要重新解析一次網域名稱。_
2.如果使用者瀏覽器快取中沒有資料,瀏覽器會查詢作業系統快取中是否有這個網域名稱對應的dns解析結果。其實作業系統也有乙個網域名稱解析的過程,在windows中可以通過c:\windows\system32\drivers\etc\hosts檔案來設定,在linux中可以通過/etc/hosts檔案來設定,使用者可以將任何網域名稱解析到任何能夠訪問的ip位址。例如,我們在測試時可以將乙個網域名稱解析到一台測試伺服器上,這樣不用修改任何**就能測試到單獨伺服器上的**的業務邏輯是否正確。正是因為有這種本地dns解析的規程,所以有黑客就可能通過修改使用者的網域名稱來把特定的網域名稱解析到他指定的ip位址上,導致這些網域名稱被劫持。
3.前兩個過程無法解析時,就要用到我們網路配置中的"dns伺服器位址"了。作業系統會把這個網域名稱傳送給這個ldns,也就是本地區的網域名稱伺服器。這個dns通常都提供給使用者本地網際網路接入的乙個dns解析服務,例如使用者是在學校接入網際網路,那麼使用者的dns伺服器肯定在學校;如果使用者是在小區接入網際網路,那麼使用者的dns就是再提供接入網際網路的應用提供商,即電信或聯通,也就是通常說的spa,那麼這個dns通常也會在使用者所在城市的某個角落,不會很遠。windows環境下通過命令列輸入ipconfig,linux環境下通過cat /etc/resolv.conf就可以查詢配置的dns伺服器了。這個專門的網域名稱解析伺服器效能都會很好,它們一般都會快取網域名稱解析結果,當然快取時間是受到網域名稱的失效時間控制的。大約80%的網域名稱解析到這裡就結束了,所以ldns主要承擔了網域名稱的解析工作。
4.如果ldns仍然沒有命中,就直接到root server網域名稱伺服器請求解析
5.根網域名稱伺服器返回給本地網域名稱伺服器乙個所查詢的主網域名稱伺服器(gtld server)位址。gtld是國際頂級網域名稱伺服器,如.com、.cn、.org等,全球只有13臺左右
6.本地網域名稱伺服器ldns再向上一步返回的gtld伺服器傳送請求
7.接受請求的gtld伺服器查詢並返回此網域名稱對應的name server網域名稱伺服器的位址,這個name server通常就是使用者註冊的網域名稱伺服器,例如使用者在某個網域名稱服務提供商申請的網域名稱,那麼這個網域名稱解析任務就由這個網域名稱提供商的伺服器來完成
8.name server網域名稱伺服器會查詢儲存的網域名稱和ip的對映關係表,在正常情況下都根據網域名稱得到目標ip位址,連同乙個ttl值返回給dns server網域名稱伺服器
9.返回該網域名稱對應的ip和ttl值,ldns會快取這個網域名稱和ip的對應關係,快取時間由ttl值控制
10.把解析的結果返回給使用者,使用者根據ttl值快取在本地系統快取中,網域名稱解析過程結束
在實際的dns解析過程中,可能還不止這10步,如name server可能有很多級,或者有乙個gtm來負載均衡控制,這都有可能會影響網域名稱解析過程。
DNS網域名稱解析過程
1.應用發起基於網域名稱的請求後,linux先查詢本地dns cache。2.本地dns cache命中 cache中有該網域名稱的紀錄項 則返回目標ip位址,否則將網域名稱解析請求傳送給本地網域名稱解析伺服器 dns server 3.網域名稱伺服器 dns server 收到請求後,先查詢本地快...
DNS網域名稱解析過程
1 瀏覽器會檢查快取中有沒有儲存過這個ip位址 如果當前快取中有此ip位址則本次解析到此結束,可以直接訪問ip位址,否則進行下一步。2 檢查作業系統快取 如果系統快取了此ip對映。本次解析到此結束,否則進行下一步 3 檢查ldns快取 本地網域名稱伺服器一般為網路服務提供商提供,比如電信聯通或者校園...
DNS網域名稱解析過程
dns,就是domain name system的縮寫,翻譯過來就是網域名稱系統,是網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫。dns能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。通過網域名稱,最終得到該網域名稱對應的ip位址的過程叫做網域名稱解析 或主...