DNS解析順序是怎樣的?
很多網站管理人員大概都瞭解域名解析的原理和過程,但是對於一些細節問題可能不太清楚,比如當客戶端對域名發起請求時,具體的解析順序是什麼樣的?下面中科三方針對這個問題做下簡單介紹。
1.DNS的作用
在網際網路中,其實沒有類似於這樣的域名方式,計算機識別的是純數字的IP地址,如222.222.222.222,比如我們知道一個網站的IP地址,直接輸入訪問絕對是能開啟的。
但現在網站成千上萬,如果我們只能透過IP地址訪問,這得需要我們花很大力氣去記住這些繁瑣和相似的數字,所以域名就作為一種更簡便的定址方式出現了。
那為什麼會有DNS呢?因為域名是給人使用的,計算機只能識別IP地址,所以需要DNS作為橋樑將域名翻譯成IP地址。這樣就能保證我們透過域名也能到達對應的伺服器地址了。
我們平時工作時會發現,有時候會出現能夠登陸qq、微信,但是卻打不開網頁的情況,其中大部分原因都是DNS伺服器故障造成的。因為網站需要透過DNS伺服器查詢解析結果,使用者根據這個結果才能透過域名去訪問,但是qq、微信等聊天軟體,採用的是UDP傳輸協議,即不可靠傳輸協議,無需DNS伺服器地址,也能登陸,所以才會出現上面的情況。
DNS解析過程
當客戶端對域名發起訪問時,會將解析請求傳送給遞迴解析伺服器,遞迴伺服器會代替客戶端進行全球遞迴查詢。
首先遞迴伺服器會請求根域名伺服器,根域名伺服器根據域名字尾,告知對應的頂級域名伺服器;遞迴伺服器再向頂級伺服器發起請求,頂級域名伺服器告知對應的權威伺服器;遞迴伺服器向權威伺服器發起請求,權威伺服器告知解析結果;遞迴伺服器將結果告知客戶端,客戶端完成訪問。
DNS快取
以上是DNS解析的標準流程,但是由於各種DNS快取的存在,導致DNS解析環節更為複雜。
所謂DNS快取是指DNS返回正確的IP地址之後,系統會將這個結果臨時儲存起來,併為快取設定一個失效時間(TTL值),在TTL失效前,當再次訪問這個網站,系統就會直接從DNS 快取中將結果返回,而不必再次委託遞迴伺服器進行全球解析查詢,加快了DNS解析的流程。
當然TTL值失效後,系統還會自動再次詢問DNS伺服器以獲取最新的解析結果。
DNS快取分類
(1)瀏覽器DNS快取:瀏覽器會根據一定頻率快取DNS記錄;
(2)本地DNS快取:如果瀏覽器快取中找不到解析記錄,就會去詢問作業系統中的快取;
(3)本地HOSTS檔案:HOSTS是記錄域名與IP地址一一對映關係的本地檔案,Windows系統中位於C:\Windows\System32\drivers\etc;
(4)路由器DNS快取:我們常用的路由器也帶有自動快取功能,路由器DNS被篡改會造成域名劫持,將訪問網址定位到另外一個伺服器;
(5)遞迴伺服器快取:遞迴伺服器在將解析結果告知客戶端的同時,將記錄快取下來,當下次請求同一個域名時,直接會將記錄返回,而無需再進行全球查詢。
DNS解析順序
DNS解析順序是“先查快取,再遞迴解析”,查詢順序為:瀏覽器快取—系統快取—路由器快取—遞迴伺服器快取—遞迴查詢。
我們以這個域名為例進行查詢,具體流程如下:
(1)搜尋瀏覽器自帶的DNS快取
當收到訪問請求後,瀏覽器首先會查詢瀏覽器自身的DNS快取,這個快取時間比較短(chrome://net-internals/#dns 這裡可以查詢快取的dns記錄),且只能容納 1000條快取,如果快取中有對應條目,返回結果,解析到此結束。
(2)查詢作業系統快取和hosts本地檔案
如果瀏覽器快取中沒有找到對應條目(ipconfig /displaydns可以檢視),作業系統也會有一個域名解析的過程,瀏覽器會先搜尋作業系統的DNS快取中是否有這個域名解析記錄,如果有返回結果,解析結束。
此外,電腦本地檔案HOSTS中可以設定域名到IP地址的指向關係。如果HOSTS檔案中儲存有該域名的記錄,瀏覽器會首先使用這個IP地址,並將其結果快取下來,快取時間同樣受域名失效時間和快取空間大小決定。
(3)查詢路由器快取
如果瀏覽器和作業系統中沒有域名解析記錄,就會查詢路由器中的DNS快取,如果路由器DNS快取中有解析條目,直接返回結果,解析結束。
(4)遞迴解析伺服器快取
如果本機和路由器DNS快取中沒有該域名的解析記錄,瀏覽器就會向遞迴伺服器發起請求,如果遞迴伺服器快取有該域名解析條目,返回結果,解析結束。
(5)查詢根域名伺服器
如果遞迴伺服器快取中沒有結果,就會委託遞迴伺服器發起全球查詢,首先遞迴伺服器會向根域名伺服器發起解析請求。根域名伺服器告知.com頂級域名伺服器地址。
(6)查詢頂級域名伺服器
遞迴伺服器向.com頂級域名伺服器發起DNS請求,.com頂級伺服器告知example.com所屬權威域名伺服器地址。
(7)查詢權威域名伺服器
遞迴伺服器向example.com的權威域名伺服器地址發起請求,權威伺服器告知所對應的IP地址。
(8)返回解析結果
得到的IP地址後,遞迴伺服器將結果告知客戶端,客戶端對該IP地址發起訪問。整個DNS解析流程到此結束。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2919442/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 中科三方:什麼是DNS?DNS解析的原理是怎樣的?DNS
- 什麼是DNS解析?DNS解析的過程是什麼樣的?DNS
- DNS查詢順序DNS
- H5中video的事件的觸發順序是怎樣的?H5IDE事件
- 怎樣做好客戶的優先順序?
- DNS查詢順序以及方式DNS
- 什麼是DNS解析?如何提升DNS解析安全?DNS
- dotnet core TargetFramework 解析順序探索Framework
- WIN10如何更改輸入法順序 win10怎樣修改電腦輸入法順序Win10
- 域名解析的原理是什麼?域名解析的流程是怎樣的?
- SQL 查詢語句的執行順序解析SQL
- Script載入順序 & 外部樣式表的阻塞
- python:LEGB識別符號解析順序Python符號
- 何為CSS 樣式優先順序CSS
- java基礎(四) java運算順序的深入解析Java
- Java框架學習順序是哪些Java框架
- Java框架學習順序是哪些?Java框架
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- 解析 RocketMQ 業務訊息--“順序訊息”MQ
- [轉] Oracle資料庫中建立表時怎樣考慮列順序Oracle資料庫
- 什麼是DNS域名解析DNS
- dns解析狀態異常怎麼處理 dns解析異常怎麼修復DNS
- php課程 1-3 web專案中php、html、js程式碼的執行順序是怎樣的(詳解)PHPWebHTMLJS
- DNS解析是什麼?DNS解析在網路通訊中作用有哪些?DNS
- 【中科三方】什麼是雲解析DNS?雲解析DNS有必要購買嗎?如何購買雲解析DNS?DNS
- python運算子及優先順序順序Python
- ppt動畫出現順序怎麼設定 PPT設定動畫文字順序動畫
- DNS解析失敗了怎麼辦DNS
- 請教前輩:關於JS的一個奇怪的錯誤,不知是解析順序造成的,還是什麼原因。。JS
- 順序表
- mac 上的 python 查詢 dylib 的順序是什麼?MacPython
- 在繼承當中這些方法及程式碼塊執行順序是什麼樣的繼承
- 第2章 順序表及其順序儲存
- 雲解析DNS是什麼意思?雲解析DNS有什麼用?(中科三方)DNS
- 【中科三方】什麼是雲解析DNS?雲解析DNS有必要購買嗎?DNS
- 什麼是DNS雲解析?雲解析有哪些特點?DNS
- 順序表的學習
- pipeline的執行順序