當用戶在瀏覽器的URL欄中鍵入域名時,DNS服務器負責將這些域名轉換為數字的IP地址,從而將其引導至正確的網站。域名系統 ( DNS ) 是 Internet 的電話簿。當用戶在網絡瀏覽器中鍵入諸如“baidu.com”或“mfisp.com”之類的域名時,DNS 負責為這些站點查找正確的IP地址。瀏覽器然后使用這些地址與源服務器或CDN 邊緣服務器通信以訪問網站信息。這一切都歸功于DNS服務器:專門用于回答 DNS查詢的機器。
什么是服務器?
服務器是專用于向其他程序(稱為“客戶端”)提供服務的設備或程序。DNS 客戶端內置于大多數現代桌面和移動操作系統中,使 Web 瀏覽器能夠與DNS服務器交互。
DNS服務器如何解析DNS查詢?
在沒有任何緩存的典型DNS查詢中,有四個服務器協同工作以向客戶端提供 IP地址:遞歸解析器、根名稱服務器、TLD 名稱服務器和權威名稱服務器。
DNS 遞歸器(也稱為 DNS 解析器)是一個服務器,它接收來自 DNS 客戶端的查詢,然后與其他DNS服務器交互以尋找正確的 IP。一旦解析器接收到來自客戶端的請求,解析器就會實際充當客戶端本身,查詢其他三種類型的DNS服務器以搜索正確的 IP。
首先,解析器查詢根名稱服務器。根服務器是將人類可讀的域名轉換(解析)為 IP地址的第一步。然后,根服務器使用存儲其域信息的頂級域 (TLD)DNS服務器(例如 .com 或 .net)的地址響應解析器。
接下來,解析器查詢 TLD 服務器。TLD 服務器以域的權威名稱服務器的 IP地址進行響應。然后遞歸者查詢權威名稱服務器,后者將使用源服務器的 IP地址進行響應。
解析器最終會將源服務器 IP地址傳遞回客戶端。使用此 IP地址,客戶端可以直接向源服務器發起查詢,源服務器將通過發送可由 Web 瀏覽器解釋和顯示的網站數據進行響應。
什么是 DNS 緩存?
除了上面概述的過程之外,遞歸解析器還可以使用緩存數據解析 DNS查詢。在檢索到給定網站的正確 IP地址后,解析器會將該信息存儲在其緩存中一段有限的時間。在此期間,如果任何其他客戶端發送對該域名的請求,解析器可以跳過典型的 DNS 查找過程,只需使用緩存中保存的 IP地址響應客戶端。
一旦緩存時間限制到期,解析器必須再次檢索 IP地址,在其緩存中創建一個新條目。此時間限制稱為生存時間 (TTL),在每個站點的DNS 記錄中明確設置。通常,TTL 在 24-48 小時范圍內。TTL 是必需的,因為 Web 服務器偶爾會更改其 IP地址,因此解析器無法無限期地從緩存中提供相同的 IP。
當DNS服務器出現故障時會發生什么?
DNS服務器可能因多種原因而失敗,例如停電、網絡攻擊和硬件故障。在互聯網的早期,DNS服務器中斷可能會產生相對較大的影響。值得慶幸的是,今天 DNS 中內置了很多冗余。例如,有許多根DNS服務器和 TLD 名稱服務器的實例,并且大多數 ISP 為其用戶提供備份遞歸解析器。(個人用戶也可以使用公共 DNS 解析器)大多數流行的網站也有其權威域名服務器的多個實例。
在DNS服務器發生重大中斷的情況下,一些用戶可能會因備份服務器處理的請求量而遇到延遲,但需要很大比例的 DNS 中斷才能使大部分 Internet 不可用。(這實際上發生在 2016 年,當時 DNS 提供商 Dyn 經歷了歷史上最大的 DDoS 攻擊之一)。提供托管 DNS 服務,該服務帶有內置的 DNS 安全性,旨在保護DNS服務器免受攻擊以及其他常見的服務器故障源。