乾貨分享 | 一文讀懂DNS原理及解析過程

youbingke發表於2021-08-19
乾貨分享 | 一文讀懂DNS原理及解析過程

當前網路通訊大部分採用的是TCP/IP協議,而TCP/IP協議的基礎是IP地址,所以計算機在網路中進行通訊時只能識別由純數字構成的IP地址。但在實際的工作生活中,我們只需在瀏覽器位址列中輸入一串簡單易記的域名,就能訪問到所對應的網站,在這個過程中發揮重要作用的就是DNS。接下來我們就針對DNS的原理和解析過程做下簡單介紹。

01什麼是DNS

DNS是Domain Name System的縮寫,翻譯成中文就是“域名系統”。DNS是網際網路中的一項核心服務,是用於實現域名和IP地址相互對映的一個分散式資料庫,它將簡單明瞭的域名翻譯成可由計算機識別的IP地址,使使用者可以更快速便捷地訪問互聯。

網際網路連通的是全球資源,單一的域名伺服器不足以支撐全部的地址轉換操作,因此全球有多套域名伺服器相互配合使用。早在1983年網際網路就開始採用層次樹狀結構的命名方法,並使用分散式的域名系統進行解析操作。這樣既提升了域名解析的效率,同時也保障了域名解析的穩定性,如果系統中單個域名伺服器出現故障,不會對整個DNS系統的正常執行造成太大影響。

乾貨分享 | 一文讀懂DNS原理及解析過程

02域名結構

網際網路採用了層次樹狀結構的命名方法。任何一個連線在網際網路上的主機或路由器,都有一個唯一的層次結構的名字,即域名。

域名的結構由標號序列組成,各標號之間用點隔開。類似於這樣: ….三級域名.二級域名.頂級域名  。 各級域名由其上一級的域名管理機構管理,而最高階的頂級域名則由ICANN進行管理。

乾貨分享 | 一文讀懂DNS原理及解析過程

域名空間結構圖

03域名伺服器

網際網路上的DNS域名伺服器也是按照層次劃分的,每一個域名伺服器都只對域名體系中的一部分進行管轄。根據域名伺服器所起的作用,可以把域名伺服器劃分為四種不同的型別:

根域名伺服器:根域名伺服器是最高層次的域名伺服器,也是最重要的域名伺服器。根域名伺服器知道所有頂級域名伺服器的域名和 IP地址。如果本地域名伺服器無法對域名進行解析,就首先求助於根域名伺服器。

頂級域名伺服器: 頂級域名伺服器負責管理在該伺服器註冊的所有二級域名。當收到 DNS 查詢請求時,就給出相應的回答(可能是最後的結果,也可能是下一步需要查詢的域名伺服器的 IP 地址)。

權威域名伺服器:這就是前面已經講過的負責一個區的域名伺服器。當一個許可權域名伺服器還不能給出最後的查詢回答時,就會告知發出查詢請求的DNS客戶,下一步應當找哪一個權威域名伺服器。

本地域名伺服器:本地域名伺服器並不屬於下圖中的樹狀結構的DNS域名伺服器,但是它對域名系統非常重要。當一個主機發出DNS查詢請求時,這個查詢請求報文就傳送給本地域名伺服器。每一個網際網路服務提供者ISP都可以擁有一個本地域名伺服器。

乾貨分享 | 一文讀懂DNS原理及解析過程

各個域的分層上都設有各自的域名伺服器,各層域名伺服器都瞭解該層以下分層中所有域名伺服器的IP地址。因此它們從根域名伺服器開始呈樹狀結構相互連線。由於所有域名伺服器都瞭解根域名伺服器的IP地址,所以若從根開始按照順序追蹤,可以訪問世界上所有域名伺服器的地址。

04DNS查詢步驟

域名解析一般採用遞迴查詢的方式進行。一個完整的域名解析過程如下圖所示:

乾貨分享 | 一文讀懂DNS原理及解析過程

其完整的DNS解析過程有以下幾個步驟:

(1)檢視瀏覽器快取

當使用者透過瀏覽器訪問某域名時,瀏覽器首先會在自己的快取中查詢是否有該域名對應的 IP 地址(若曾經訪問過該域名且沒有清空快取便存在)。

(2)檢視系統快取

當瀏覽器快取中無域名對應 IP 則會自動檢查使用者計算機系統 Hosts 檔案 DNS 快取是否有該域名對應 IP。

(3)檢視路由器快取

當瀏覽器及系統快取中均無域名對應 IP 則進入路由器快取中檢查,以上三步均為客服端的 DNS 快取。

(4)檢視ISP DNS 快取

當在使用者客服端查詢不到域名對應 IP 地址,則將進入 ISP DNS 快取中進行查詢。比如你用的是電信的網路,則會進入電信的 DNS 快取伺服器中進行查詢。

(5)詢問根域名伺服器

當以上均未完成,則進入根伺服器進行查詢。全球僅有 13 臺根域名伺服器,1 個主根域名伺服器,其餘 12 為輔根域名伺服器。根域名收到請求後會檢視區域檔案記錄,若無則將其管轄範圍內頂級域名(如.com、.cn等)伺服器 IP 告訴本地 DNS 伺服器。

(6)詢問頂級域名伺服器

頂級域名伺服器收到請求後檢視區域檔案記錄,若無記錄則將其管轄範圍內權威域名伺服器的 IP 地址告訴本地 DNS 伺服器。

(7)詢問權威域名(主域名)伺服器

權威域名伺服器接受到請求後查詢自己的快取,如果沒有則進入下一級域名伺服器進行查詢,並重復該步驟直至找到正確記錄。

(8)儲存結果至快取

本地域名伺服器把返回的結果儲存到快取,以備下一次使用,同時將該結果反饋給客戶端,客戶端透過這個 IP 地址即可訪問目標Web伺服器。至此,DNS遞迴查詢的整個過程結束。

DNS系統承擔著將域名解析成IP地址的重要作用,是計算機之間實現訪問互聯的關鍵和基礎。因此,DNS解析的安全對於維持網路穩定執行至關重要。企業相關管理者和運營者一定要做好域名及域名解析的安全防護工作,定期進行資料掃描分析,啟用全方位DNS風險監測,實時關注DNS執行狀態,同時做好妥善的應急備份準備,一旦發現問題,出現故障,第一時間響應解決,才能將DNS故障風險及其帶來的損失降至最低點。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2787861/,如需轉載,請註明出處,否則將追究法律責任。

相關文章