簡述DNS進行域名解析的原理

DNS域名解析是互聯網上非常重要的一項服務,上網衝浪(還有人在用這個詞嗎?)伴隨着大量DNS服務來支撐,而對於網站運營來說,DNS域名解析的穩定可靠,意味着更多用戶的喜歡,更好的SEO效果和更大的訪問流量。我們先了解一下什麼是DNS:

DNS,就是Domain Name System的縮寫,翻譯過來就是域名系統,是互聯網上作爲域名和IP地址相互映射的一個分佈式數據庫。DNS能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過域名,最終得到該域名對應的IP地址的過程叫做域名解析(或主機名解析)。

下面這張圖,詳細說明了一個DNS域名解析的全過程:

 

DNS域名解析的全過程


下面來詳細解釋DNS域名解析的過程:

網絡客戶端就是我們平常使用的電腦,打開瀏覽器,輸入一個域名。比如輸入www.163.com,這時,你使用的電腦會發出一個DNS請求到本地DNS服務器。本地DNS服務器一般都是你的網絡接入服務器商提供,比如中國電信,中國移動。

查詢www.163.com的DNS請求到達本地DNS服務器之後,本地DNS服務器會首先查詢它的緩存記錄,如果緩存中有此條記錄,就可以直接返回結果。如果沒有,本地DNS服務器還要向DNS根服務器進行查詢。

根DNS服務器沒有記錄具體的域名和IP地址的對應關係,而是告訴本地DNS服務器,你可以到域服務器上去繼續查詢,並給出域服務器的地址。

本地DNS服務器繼續向域服務器發出請求,在這個例子中,請求的對象是.com域服務器。.com域服務器收到請求之後,也不會直接返回域名和IP地址的對應關係,而是告訴本地DNS服務器,你的域名的解析服務器的地址。

最後,本地DNS服務器向域名的解析服務器發出請求,這時就能收到一個域名和IP地址對應關係,本地DNS服務器不僅要把IP地址返回給用戶電腦,還要把這個對應關係保存在緩存中,以備下次別的用戶查詢時,可以直接返回結果,加快網絡訪問。

 

關於DNS解析的TTL參數:

我們在配置DNS解析的時候,有一個參數常常容易忽略,就是DNS解析的TTL參數,Time To Live。TTL這個參數告訴本地DNS服務器,域名緩存的最長時間。用阿里雲解析來舉例,阿里雲解析默認的TTL是10分鐘,10分鐘的含義是,本地DNS服務器對於域名的緩存時間是10分鐘,10分鐘之後,本地DNS服務器就會刪除這條記錄,刪除之後,如果有用戶訪問這個域名,就要重複一遍上述複雜的流程。

其實,如果網站已經進入穩定發展的狀態,不會輕易更換IP地址,我們完全可以將TTL設置到協議最大值,即24小時。帶來的好處是,讓域名解析記錄能夠更長時間的存放在本地DNS服務器中,以加快所有用戶的訪問。設置成24小時,其實,還解決了Googlebot在全球部署的服務器抓取網站可能帶來的問題,這個問題麥新傑專門有一篇博文,請參考:“Googlebot無法訪問您的站點”問題理解和處理方法

阿里雲之所以只將TTL設置成10分鐘,是爲了讓域名解析更快生效而已。因爲之前的解析會在最長10分鐘之後失效(本地DNS服務器將對應的解析條目刪除),然後新的解析生效。如果是24小時,這個生效的時間最長就是24小時,甚至更長(本地DNS服務器要有用戶請求,纔會發起查詢)。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章