DNS網域名稱解析過程

2021-08-04 20:36:22 字數 3334 閱讀 4169

dns,就是domain name system的縮寫,翻譯過來就是網域名稱系統,是網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫。dns能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。通過網域名稱,最終得到該網域名稱對應的ip位址的過程叫做網域名稱解析(或主機名解析)。

下面這張圖,詳細說明了乙個dns網域名稱解析的全過程:

下面來詳細解釋dns網域名稱解析的過程:

第1步:客戶機就是我們平常使用的電腦,開啟瀏覽器,輸入乙個網域名稱。比如輸入www.163.com,這時,瀏覽器會檢查快取中有沒有這個網域名稱對應的解析過的ip位址,如果快取中有,這個解析過程就將結束。

瀏覽器快取網域名稱也是有限制的,不僅瀏覽器快取大小有限制,而且快取的時間也有限制,通常情況下為幾分鐘到幾小時不等,網域名稱被快取的時間限制可以通過ttl(time to live)屬性來設定。

這個快取時間太長和太短都不好,如果快取時間太長,一旦網域名稱被解析到的ip有變化,會導致被客戶端快取的網域名稱無法解析到變化後的ip位址,以致該網域名稱不能正常解析,這段時間內有可能會有一部分使用者無法訪問**。如果時間設定太短,會導致使用者每次訪問**都要重新解析一次網域名稱。

阿里雲解析預設的ttl是10分鐘,10分鐘的含義是,本地dns伺服器對於網域名稱的快取時間是10分鐘,10分鐘之後,本地dns伺服器就會刪除這條記錄,刪除之後,如果有使用者訪問這個網域名稱,就要重複一遍上述複雜的流程。其實,如果**已經進入穩定發展的狀態,不會輕易更換ip位址,我們完全可以將ttl設定到協議最大值,即24小時。帶來的好處是,讓網域名稱解析記錄能夠更長時間的存放在本地dns伺服器中,以加快所有使用者的訪問。

第2步:如果使用者的瀏覽器快取中沒有,作業系統會檢查自己本地的hosts檔案是否有這個**對映關係,如果有,就先呼叫這個ip位址對映,完成網域名稱解析。

在作業系統中也有乙個網域名稱解析的過程,在windows中可以通過c:\windows\system32\drivers\etc\hosts檔案來設定,你可以將任何網域名稱解析到任何能夠訪問的ip位址。

如果你在這裡指定了乙個網域名稱對應的ip位址,那麼瀏覽器會首先使用這個ip位址。例如,我們在測試時可以將乙個網域名稱解析到一台測試伺服器上,這樣不用修改任何**就能測試到單獨伺服器上的**的業務邏輯是否正確。

正是因為有這種本地dns解析的過程,所以黑客就有可能通過修改你的網域名稱解析來把特定的網域名稱解析到它指定的ip位址上,導致這些網域名稱被劫持。早期的windows版本中出現過很嚴重的問題,而且對於一般沒有太多電腦知識的使用者來說,出現問題後很難發現,即使發現也很難自己解決,所以windows 7中將hosts檔案設定成了唯讀的,防止這個檔案被輕易修改。

linux中這個配置檔案是/etc/named.conf,修改這個檔案可以達到同樣的目的,當解析到這個配置檔案中的某個網域名稱時,作業系統會在快取中快取這個解析結果,快取的時間同樣是受這個網域名稱的失效時間和快取的空間大小控制的。

第3步:如果本機快取沒有相應的**對映關係,客戶機會發出乙個dns請求到本地dns伺服器。本地dns伺服器一般都是你的網路接入伺服器商提供,比如中國電信,中國移動。

這個專門的本地dns伺服器效能都會很好,它們一般都會快取網域名稱解析結果,當然快取時間是受網域名稱的失效時間控制的,一般快取空間不是影響網域名稱失效的主要因素。大約80%的網域名稱解析都到這裡就已經完成了,所以本地dns伺服器主要承擔了網域名稱的解析工作。

linux下可以通過如下方式查詢配置的dns server

第4步:查詢www.163.comdns請求到達本地dns伺服器後,若要查詢的網域名稱包含在本地配置區域資源中,則返回解析結果給客戶機,完成網域名稱解析,此解析具有權威性。如果要查詢的網域名稱,不由本地dns伺服器區域解析,但該伺服器已快取了此**對映關係,則呼叫這個ip位址對映,完成網域名稱解析,此解析不具有權威性。

第5步:如果本地dns伺服器本地區域檔案與快取解析都失效,則根據本地dns伺服器的設定(是否設定**器)進行查詢。

如果用的是**模式,此dns伺服器就會把請求**至上一級dns伺服器,由上一級伺服器進行解析,上一級伺服器如果不能解析,或找根dns或把轉請求轉至上上級,以此迴圈。

不管是本地dns伺服器用是哪種模式,最後都是把結果返回給本地dns伺服器,由此dns伺服器再返回給客戶機。

第6步:返回該網域名稱對應的ipttl值,本地dns伺服器會快取這個網域名稱和ip的對應關係,快取的時間由ttl值控制。

第7步:把解析的結果返回給使用者,使用者根據ttl值快取在本地系統快取中,以備下次別的使用者查詢時,可以直接返回結果,加快網路訪問,網域名稱解析過程結束。

參考鏈結

一張圖看懂dns網域名稱解析全過程

dns原理及其解析過程【精彩剖析】

dns網域名稱解析過程

dns解析過程詳解

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網域名稱解析過程

1 瀏覽器檢查快取中有沒有這個網域名稱對應的解析過的ip位址,如果快取中有這個解析過程就結束 2 如果瀏覽器快取中沒有,去作業系統的快取查詢,hosts檔案中找 3 如果作業系統快取中沒有 去local dns server ldns 本地dns伺服器中去找 比如 學校 小區裡的網際網路服務提供商電...