Cloudflare:什么是 DNS?

來源:Cloudflare
作者:Cloudflare
時間:2021-01-20
4246
域名系統(tǒng) (DNS) 是 Internet 電話簿。人們通過例如 nytimes.com 或 espn.com 等域名在線訪問信息。Web 瀏覽器通過 Internet 協(xié)議 (IP) 地址進行交互。DNS 將域名轉換為 IP 地址,以便瀏覽器能夠加載 Internet 資源。

什么是 DNS?

域名系統(tǒng) (DNS) 是 Internet 電話簿。人們通過例如 nytimes.com 或 espn.com 等域名在線訪問信息。Web 瀏覽器通過 Internet 協(xié)議 (IP) 地址進行交互。DNS 將域名轉換為 IP 地址,以便瀏覽器能夠加載 Internet 資源。

連接到 Internet 的每個設備都有一個唯一 IP 地址,其他計算機可使用該 IP 地址查找此設備。DNS 服務器使人們無需存儲例如 192.168.1.1(IPv4 中)等 IP 地址或更復雜的較新字母數(shù)字 IP 地址,例如 2400:cb00:2048:1::c629:d7a2(IPv6 中)。

DNS 如何工作?

DNS 解析過程涉及將主機名(例如 www.example.com)轉換為計算機友好的 IP 地址(例如 192.168.1.1)。Internet 上的每個設備都被分配了一個 IP 地址,必須有該地址才能找到相應的 Internet 設備 - 就像使用街道地址來查找特定住所一樣。當用戶想要加載網(wǎng)頁時,用戶在 Web 瀏覽器中鍵入的內容(example.com)與查找 example.com 網(wǎng)頁所需的機器友好地址之間必須進行轉換。

為理解 DNS 解析過程,務必了解 DNS 查詢必須經(jīng)過的不同硬件組件。對于 Web 瀏覽器,DNS 查找在“幕后”進行,除了初始請求外,不需要從用戶的計算機進行任何交互。

加載網(wǎng)頁涉及 4 個 DNS 服務器:

DNS 解析器 - 該解析器可被視為被要求去圖書館的某個地方查找特定圖書的圖書館員。DNS 解析器是一種服務器,旨在通過 Web 瀏覽器等應用程序接收客戶端計算機的查詢。然后,解析器一般負責發(fā)出其他請求,以便滿足客戶端的 DNS 查詢。

根域名服務器 - 根域名服務器是將人類可讀的主機名轉換(解析)為 IP 地址的第一步??蓪⑵湟暈橹赶虿煌瑫艿膱D書館中的索引 - 一般其作為對其他更具體位置的引用。

TLD 域名服務器 - 頂級域服務器(TLD)可被視為圖書館中的特定書架。此域名服務器是搜索特定 IP 地址的下一步,其托管主機名的最后一部分(在 example.com 中,TLD 服務器為 “com”)。

權威性域名服務器 - 可將這個最終域名服務器視為書架上的字典,其中特定名稱可被轉換成其定義。權威性域名服務器是域名服務器查詢中的最后一站。如果權威性域名服務器能夠訪問請求的記錄,則其會將已請求主機名的 IP 地址返回到發(fā)出初始請求的 DNS 解析器(圖書管理員)。

權威性 DNS 服務器與遞歸 DNS 解析器之間的區(qū)別是什么?

這兩個概念都是指 DNS 基礎設施不可或缺的服務器(服務器組),但各自擔當不同的角色,并且位于 DNS 查詢管道內的不同位置??紤]二者差異的一種方式是,遞歸解析器位于 DNS 查詢的開頭,而權威性域名服務器位于末尾。

遞歸 DNS 解析器

遞歸解析器是一種計算機,其響應來自客戶端的遞歸請求并花時間追蹤 DNS 記錄。為執(zhí)行此操作,其發(fā)出一系列請求,直至到達用于所請求的記錄的權威性 DNS 域名服務器為止(或者超時,或者如果未找到記錄,則返回錯誤)。幸運的是,遞歸 DNS 解析器并不總是需要發(fā)出多個請求才能追蹤響應客戶端所需的記錄;緩存是一種數(shù)據(jù)持久性過程,可通過在 DNS 查找中更早地服務于所請求的資源記錄來為所需的請求提供捷徑。

ia_5000000046.png

權威性 DNS 服務器

簡言之,權威性 DNS 服務器是實際持有并負責 DNS 資源記錄的服務器。這是位于 DNS 查找鏈底部的服務器,其將使用所查詢的資源記錄進行響應,從而最終允許發(fā)出請求的 Web 瀏覽器達到訪問網(wǎng)站或其他 Web 資源所需的 IP 地址。權威性域名服務器從自身數(shù)據(jù)滿足查詢需求,無需查詢其他來源,因為這是某些 DNS 記錄的最終真實來源。

ia_5000000047.png

值得一提的是,在查詢對象為子域(例如 foo.example.com 或 blog.cloudflare.com)的情況下,將向權威性域名服務器之后的序列添加一個附加域名服務器,其負責存儲該子域的 CNAME 記錄。

ia_5000000048.png

許多 DNS 服務與 Cloudflare 提供的服務之間存在一個關鍵區(qū)別。Google DNS、OpenDNS 等不同 DNS 遞歸解析器以及 Comcast 等提供商均保持 DNS 遞歸解析器的數(shù)據(jù)中心安裝。這些解析器可實現(xiàn)通過 DNS 優(yōu)化式計算機系統(tǒng)的優(yōu)化群集快速輕松地進行查詢,但它們與 Cloudflare 托管的域名服務器截然不同。

Cloudflare 維護 Internet 功能不可或缺的基礎設施級域名服務器。一個主要示例是 Cloudflare 部分負責托管的 f-根服務器網(wǎng)絡。F 根是每天負責數(shù)十億個 Internet 請求的根級 DNS 域名服務器基礎設施組件之一。我們的 Anycast 網(wǎng)絡在處理大量 DNS 流量方面發(fā)揮著不可替代的作用,也不會出現(xiàn)服務中斷。

DNS 查找有哪些步驟?

大多數(shù)情況下,DNS 與正被轉換為相應 IP 地址的域名有關。要了解此過程的工作方式,在 DNS 查找從 Web 瀏覽器經(jīng)過 DNS 查找過程然后再返回時,跟蹤 DNS 查找的路徑會有所幫助。我們來看一下這些步驟。

注意:通常,DNS 查找信息將本地緩存在查詢計算機內,或者遠程緩存在 DNS 基礎設施內。DNS 查找通常有 8 個步驟。緩存 DNS 信息時,將從 DNS 查找過程中跳過一些步驟,從而使該過程更快。以下示例概述了不緩存任何內容時的所有 8 個步驟。

用戶在 Web 瀏覽器中鍵入 “example.com”,查詢傳輸?shù)?Internet 中,并被 DNS 遞歸解析器接收。

接著,解析器查詢 DNS 根域名服務器(.)。

然后,根服務器使用存儲其域信息的頂級域(TLD)DNS 服務器(例如 .com 或 .net)的地址響應該解析器。在搜索 example.com 時,我們的請求指向 .com TLD。

然后,解析器向 .com TLD 發(fā)出請求。

TLD 服務器隨后使用該域的域名服務器 example.com 的 IP 地址進行響應。

最后,遞歸解析器將查詢發(fā)送到域的域名服務器。

example.com 的 IP 地址而后從域名服務器返回解析器。

然后 DNS 解析器使用最初請求的域的 IP 地址響應 Web 瀏覽器。

DNS 查找的這 8 個步驟返回 example.com 的 IP 地址后,瀏覽器便能發(fā)出對該網(wǎng)頁的請求:

瀏覽器向該 IP 地址發(fā)出 HTTP 請求。

位于該 IP 的服務器返回將在瀏覽器中呈現(xiàn)的網(wǎng)頁(第 10 步)。

ia_5000000049.png

什么是 DNS 解析器?

DNS 解析器是 DNS 查找的第一站,其負責與發(fā)出初始請求的客戶端打交道。解析器啟動查詢序列,最終使 URL 轉換為必要的 IP 地址。

注意:典型的未緩存 DNS 查找將涉及遞歸查詢和迭代查詢。

務必區(qū)分遞歸 DNS 查詢和遞歸 DNS 解析器。該查詢是指向需要解析該查詢的 DNS 解析器發(fā)出的請求。DNS 遞歸解析器是一種計算機,其接受遞歸查詢并通過發(fā)出必要的請求來處理響應。

ia_5000000050.png

DNS 查詢有哪些類型?

典型 DNS 查找中會出現(xiàn)三種類型的查詢。通過組合使用這些查詢,優(yōu)化的 DNS 解析過程可縮短傳輸距離。在理想情況下,可以使用緩存的記錄數(shù)據(jù),從而使 DNS 域名服務器能夠返回非遞歸查詢。

3 種 DNS 查詢類型:

遞歸查詢 - 在遞歸查詢中,DNS 客戶端要求 DNS 服務器(一般為 DNS 遞歸解析器)將使用所請求的資源記錄響應客戶端,或者如果解析器無法找到該記錄,則返回錯誤消息。

迭代查詢 - 在這種情況下,DNS 客戶端將允許 DNS 服務器返回其能夠給出的最佳應答。如果所查詢的 DNS 服務器與查詢名稱不匹配,則其將返回對較低級別域名空間具有權威性的 DNS 服務器的引用。然后,DNS 客戶端將對引用地址進行查詢。此過程繼續(xù)使用查詢鏈中的其他 DNS 服務器,直至發(fā)生錯誤或超時為止。

非遞歸查詢 - 當 DNS 解析器客戶端查詢 DNS 服務器以獲取其有權訪問的記錄時通常會進行此查詢,因為其對該記錄具有權威性,或者該記錄存在于其緩存內。DNS 服務器通常會緩存 DNS 記錄,以防止更多帶寬消耗和上游服務器上的負載。

什么是 DNS 高速緩存?DNS 高速緩存發(fā)生在哪里?

緩存的目的是將數(shù)據(jù)臨時存儲在某個位置,從而提高數(shù)據(jù)請求的性能和可靠性。DNS 高速緩存涉及將數(shù)據(jù)存儲在更靠近請求客戶端的位置,以便能夠更早地解析 DNS 查詢,并且能夠避免在 DNS 查找鏈中進一步向下的額外查詢,從而縮短加載時間并減少帶寬/CPU 消耗。DNS 數(shù)據(jù)可緩存到各種不同的位置上,每個位置均將存儲 DNS 記錄并保存由生存時間(TTL)決定的一段時間。

瀏覽器 DNS 緩存

現(xiàn)代 Web 瀏覽器設計為默認將 DNS 記錄緩存一段時間。目的很明顯;越靠近 Web 瀏覽器進行 DNS 緩存,為檢查緩存并向 IP 地址發(fā)出正確請求而必須采取的處理步驟就越少。發(fā)出對 DNS 記錄的請求時,瀏覽器緩存是針對所請求的記錄而檢查的第一個位置。

在 Chrome 瀏覽器中,您可以轉到 chrome://net-internals/#dns 查看 DNS 緩存的狀態(tài)。

操作系統(tǒng)(OS)級 DNS 緩存

操作系統(tǒng)級 DNS 解析器是 DNS 查詢離開您計算機前的第二站,也是本地最后一站。操作系統(tǒng)內旨在處理此查詢的過程通常稱為“存根解析器”或 DNS 客戶端。當存根解析器獲取來自某個應用程序的請求時,其首先檢查自己的緩存,以便查看是否有此記錄。如果沒有,則將本地網(wǎng)絡外部的 DNS 查詢(設置了遞歸標記)發(fā)送到 Internet 服務提供商(ISP)內部的 DNS 遞歸解析器。

與先前所有步驟一樣,當 ISP 內的遞歸解析器收到 DNS 查詢時,其還將查看所請求的主機到 IP 地址轉換是否已經(jīng)存儲在其本地持久性層中。

根據(jù)其緩存中具有的記錄類型,遞歸解析器還具有其他功能:

如果解析器沒有 A 記錄,但確實有針對權威性域名服務器的 NS 記錄,則其將直接查詢這些域名服務器,從而繞過 DNS 查詢中的幾個步驟。此快捷方式可防止從根和 .com 域名服務器(在我們對 example.com 的搜索中)進行查找,并且有助于更快地解析 DNS 查詢。

如果解析器沒有 NS 記錄,它會向 TLD 服務器(本例中為 .com)發(fā)送查詢,從而跳過根服務器。

萬一解析器沒有指向 TLD 服務器的記錄,其將查詢根服務器。這種情況通常在清除了 DNS 高速緩存后發(fā)生。

立即登錄,閱讀全文
原文鏈接:點擊前往 >
文章來源:Cloudflare
版權說明:本文內容來自于Cloudflare,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼關注
獲取更多出海資訊的相關信息
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家