Cloudflare:什么是 DNS?

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

什么是 DNS?

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

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

DNS 如何工作?

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

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

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

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

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

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

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

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

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

遞歸 DNS 解析器

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

ia_5000000046.png

權(quán)威性 DNS 服務(wù)器

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

ia_5000000047.png

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

ia_5000000048.png

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

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

DNS 查找有哪些步驟?

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

注意:通常,DNS 查找信息將本地緩存在查詢計(jì)算機(jī)內(nèi),或者遠(yuǎn)程緩存在 DNS 基礎(chǔ)設(shè)施內(nèi)。DNS 查找通常有 8 個(gè)步驟。緩存 DNS 信息時(shí),將從 DNS 查找過(guò)程中跳過(guò)一些步驟,從而使該過(guò)程更快。以下示例概述了不緩存任何內(nèi)容時(shí)的所有 8 個(gè)步驟。

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

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

然后,根服務(wù)器使用存儲(chǔ)其域信息的頂級(jí)域(TLD)DNS 服務(wù)器(例如 .com 或 .net)的地址響應(yīng)該解析器。在搜索 example.com 時(shí),我們的請(qǐng)求指向 .com TLD。

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

TLD 服務(wù)器隨后使用該域的域名服務(wù)器 example.com 的 IP 地址進(jìn)行響應(yīng)。

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

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

然后 DNS 解析器使用最初請(qǐng)求的域的 IP 地址響應(yīng) Web 瀏覽器。

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

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

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

ia_5000000049.png

什么是 DNS 解析器?

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

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

務(wù)必區(qū)分遞歸 DNS 查詢和遞歸 DNS 解析器。該查詢是指向需要解析該查詢的 DNS 解析器發(fā)出的請(qǐng)求。DNS 遞歸解析器是一種計(jì)算機(jī),其接受遞歸查詢并通過(guò)發(fā)出必要的請(qǐng)求來(lái)處理響應(yīng)。

ia_5000000050.png

DNS 查詢有哪些類型?

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

3 種 DNS 查詢類型:

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

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

非遞歸查詢 - 當(dāng) DNS 解析器客戶端查詢 DNS 服務(wù)器以獲取其有權(quán)訪問(wèn)的記錄時(shí)通常會(huì)進(jìn)行此查詢,因?yàn)槠鋵?duì)該記錄具有權(quán)威性,或者該記錄存在于其緩存內(nèi)。DNS 服務(wù)器通常會(huì)緩存 DNS 記錄,以防止更多帶寬消耗和上游服務(wù)器上的負(fù)載。

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

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

瀏覽器 DNS 緩存

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

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

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

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

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

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

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

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

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

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