狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

DNS域名系統(tǒng)如何工作?這篇文章幫你講透!

freeflydom
2024年5月28日 14:5 本文熱度 1452

什么是DNS?

其實(shí),當(dāng)用戶在瀏覽器輸入“example.com”進(jìn)行訪問時(shí),瀏覽器會(huì)自動(dòng)向 DNS服務(wù)器發(fā)送請(qǐng)求,DNS解析器將域名轉(zhuǎn)換為IP地址,然后將 IP返回給瀏覽器,瀏覽器再訪問該 IP,因此,整個(gè)過程中用戶無需知道網(wǎng)站的 IP地址,卻可輕松訪問網(wǎng)站。如下圖:

在上述描述中,有一個(gè)核心點(diǎn)是 DNS,那么,DNS是什么呢?

DNS是 Domain Name System的首字母縮寫,翻譯為域名系統(tǒng),域名和IP地址的映射關(guān)系都保存在 DNS服務(wù)器上,因此,DNS是互聯(lián)網(wǎng)的電話簿。

網(wǎng)上有很多公用的 DNS服務(wù)器,比如 Google的“8.8.8.8”,Cloudflare 公司的“1.1.1.1”等。

DNS工作原理

要了解 DNS的工作原理,需要從 DNS服務(wù)器和 DNS查詢過程兩個(gè)主要點(diǎn)來進(jìn)行講解。

DNS服務(wù)器

在整個(gè) DNS工作過程中,會(huì)經(jīng)歷 4種 DNS服務(wù)器,整個(gè)請(qǐng)求過程如下圖:

1.DNS解析器

DNS解析器是一種服務(wù)器,負(fù)責(zé)整個(gè)域名轉(zhuǎn)IP的過程,當(dāng)收到客戶端 DNS查詢請(qǐng)求時(shí),DNS解析器會(huì)根據(jù)"DNS查詢類型"來查詢對(duì)應(yīng)的 IP地址。因此,遞歸 DNS解析器是域名轉(zhuǎn)IP的總負(fù)責(zé)人

2.根域名服務(wù)器

根域名服務(wù)器是將人類可讀的域名轉(zhuǎn)換為 IP地址的第一步,它管理著根域名,根域名用一個(gè)點(diǎn)(.)表示,因此,可以把根域名服務(wù)器理解成一個(gè)索引

全球共有 13組根域名服務(wù)器,它們以英文字母“A到M”依序命名,網(wǎng)域名稱格式為“A~M.root-servers.net”,具體信息如下表:

3.頂級(jí)域名服務(wù)器

頂級(jí)域名服務(wù)器(top-level domain,簡(jiǎn)寫 TLD),托管著一些頂級(jí)域名(比如 .com,.io, .net),它是域名轉(zhuǎn)IP的第二步,可以把頂級(jí)域名服務(wù)器理解成一個(gè)二級(jí)索引

4.權(quán)威性域名服務(wù)器

權(quán)威性域名服務(wù)器(Authoritative nameserver),它是真實(shí)存儲(chǔ)具體域名的服務(wù)器,比如(example.com,redis.io)等,它是域名轉(zhuǎn)IP的最后一步,如果權(quán)威性域名服務(wù)器能查詢記錄,則返回 IP地址,否則做以下處理:

  • 如果權(quán)威域名服務(wù)器確認(rèn)域名不存在,則返回一個(gè) NXDOMAIN(Non-Existent Domain)響應(yīng)

  • 如果權(quán)威域名服務(wù)器由于某些原因無法處理查詢請(qǐng)求,它可能返回一個(gè)SERVFAIL(Server Failure)響應(yīng),這表示服務(wù)器遇到了無法解決的問題,但并不意味域名不存在

因此,可以把權(quán)威性域名理解成一個(gè)數(shù)據(jù)行

需要注意:在某些情況下,主域名的權(quán)威名稱服務(wù)器可能并不直接存儲(chǔ)子域名的記錄,而是委托給另一個(gè)專門管理子域名的名稱服務(wù)器。 比如,CNAME記錄,子域名的記錄指向另一個(gè)域名,因此,CNAME記錄需要額外的查詢步驟,以找到實(shí)際的 IP地址或進(jìn)一步的 DNS記錄。

DNS是一個(gè)分布式系統(tǒng),內(nèi)部的域名服務(wù)器以及其保存的域名是一個(gè)樹狀結(jié)構(gòu),如下圖:

DNS查找過程

DNS 查找主要有以下 8個(gè)步驟:

  1. 用戶在 Web瀏覽器中輸入“yuanjava.com”地址時(shí),查詢會(huì)傳輸?shù)?Internet中,并被 DNS解析器接收

  2. DNS解析器收到請(qǐng)求后,向根域名服務(wù)器發(fā)出查詢請(qǐng)求

  3. 根域名服務(wù)器收到請(qǐng)求后,發(fā)現(xiàn)后綴是 .com,表明"yuanjava.com"這個(gè)域名是由 .com區(qū)域管理,然后返回頂級(jí) DNS的地址

  4. DNS解析器拿到了根域名服務(wù)器的響應(yīng)后,向 .com頂級(jí)域名服務(wù)器發(fā)出請(qǐng)求

  5. 頂級(jí)域名服務(wù)器收到請(qǐng)求后,響應(yīng)其權(quán)威 DNS服務(wù)器地址

  6. DNS解析器拿到了頂級(jí)域名服務(wù)器的響應(yīng)后,隨后向權(quán)威域名服務(wù)器進(jìn)行請(qǐng)求

  7. 權(quán)威域名服務(wù)器收到請(qǐng)求后,使用“yuanjava.com”查詢到對(duì)應(yīng)的 IP地址并進(jìn)行響應(yīng)

  8. 最后,DNS解析器使用 IP地址響應(yīng) Web瀏覽器

上述 8個(gè) DNS查找步驟可以返回“yuanjava.com”的 IP地址后,最后,瀏覽器使用該 IP地址向服務(wù)器發(fā)出 HTTP請(qǐng)求,獲取對(duì)應(yīng)的數(shù)據(jù)顯示在網(wǎng)頁中。

整個(gè)過程如下圖:

DNS 查詢類型

在上述 DNS工作原理講解時(shí),我們提到了 DNS查詢類型,那么 DNS查詢類型有哪些呢?

通常來說,DNS查詢類型有 3種:

遞歸查詢

在遞歸查詢中,DNS客戶端要求 DNS服務(wù)器(通常是遞歸解析器)返回請(qǐng)求的資源記錄或錯(cuò)誤消息。如果遞歸解析器找不到記錄,就會(huì)返回一個(gè)錯(cuò)誤。

迭代查詢

在迭代查詢中,DNS客戶端允許 DNS服務(wù)器返回它能提供的最佳答案。如果查詢的 DNS服務(wù)器沒有匹配的記錄,它會(huì)返回一個(gè)指向更低層域名空間的 DNS服務(wù)器的引用,客戶端再向引用地址發(fā)出查詢。這個(gè)過程會(huì)繼續(xù),直到找到結(jié)果或出現(xiàn)錯(cuò)誤或超時(shí)。

非遞歸查詢

非遞歸查詢通常發(fā)生在 DNS解析器客戶端查詢 DNS服務(wù)器時(shí),DNS服務(wù)器時(shí)能直接查到記錄,要么因?yàn)樗窃撚涗浀臋?quán)威服務(wù)器,要么因?yàn)樵撚涗洿嬖谟谒木彺嬷小Mǔ#珼NS服務(wù)器會(huì)緩存 DNS記錄以減少帶寬消耗和上游服務(wù)器的負(fù)載。

DNS解析器通過組合上述 3種查詢方式,可以優(yōu)化 DNS解析過程和縮短傳輸距離。在理想情況下,可以使用緩存的記錄數(shù)據(jù),從而使 DNS 域名服務(wù)器能夠返回非遞歸查詢。

DNS查詢實(shí)例演示

為了更好的演示域名的整個(gè) DNS查詢過程,本文通過對(duì)我的技術(shù)博客www.yuanjava.com這個(gè)域名進(jìn)行 DNS解析,使用到的工具有dig命令,然后使用 3種方式進(jìn)行解析:

  • 使用指定的 DNS服務(wù)器

  • 使用公開的 DNS服務(wù)器

  • 使用運(yùn)營(yíng)商默認(rèn)的 DNS服務(wù)器

在進(jìn)入正式的解析之前,我們先來了解下 dig指令。

dig

dig(Domain Information Groper,域名信息搜索器)是一個(gè)用于查詢 DNS信息的命令,dig可以執(zhí)行各種類型的 DNS查詢,并顯示詳細(xì)的響應(yīng)信息,包括查詢的解析過程、響應(yīng)時(shí)間、返回的記錄等。

dig的基本語法

dig [@server] [name] [type] 


  • @server:指定要查詢的 DNS服務(wù)器,如果省略,默認(rèn)使用系統(tǒng)配置的 DNS服務(wù)器

  • name:需要查詢的域名

  • type:查詢的記錄類型(如A、AAAA、MX、TXT等,如果省略,默認(rèn)查詢A記錄

使用示例

dig yuanjava.com A        # 返回 yuanjava.com的 IPv4地址記錄

dig yuanjava.com AAAA     # 返回 yuanjava.com的IPv6地址記錄

dig yuanjava.com MX       # 返回 yuanjava.com的郵件交換記錄

dig @8.8.8.8 yuanjava.com #指定 Google公共的 8.8.8.8 DNS服務(wù)器查詢 yuanjava.com

dig @1.1.1.1 yuanjava.com #指定 cloudflare公共的 1.1.1.1 DNS服務(wù)器查詢 yuanjava.com


2.結(jié)果返回

dig的輸出通常包含以下 6個(gè)部分:

  • Header部分:顯示 dig命令的版本和查詢的基本信息

  • Question部分:顯示查詢的詳細(xì)信息,包括操作碼(opcode)、狀態(tài)碼(status)、標(biāo)志位(flags)等

  • Answer部分:顯示查詢結(jié)果,包括域名、TTL(生存時(shí)間)、記錄類型和記錄值

  • Authority部分:顯示權(quán)威名稱服務(wù)器的信息

  • Additional部分:顯示與查詢相關(guān)的其他信息(如果有)

  • Query time和服務(wù)器信息:顯示查詢時(shí)間、使用的DNS服務(wù)器、查詢的時(shí)間戳和返回消息的大小

講解完 dig指令后,我們正式進(jìn)入 DNS解析的實(shí)戰(zhàn)演習(xí):

使用指定的DNS服務(wù)器

首先,使用 13臺(tái)根域名服務(wù)器的任意一臺(tái)進(jìn)行解析,這里以"198.41.0.4"為例,指令如下:

dig @198.41.0.4 yuanjava.com

指令執(zhí)行如下圖:

 

因?yàn)楦蛎?wù)器給不了"yuanjava.com"的 IP地址,所以執(zhí)行結(jié)果中沒有 ANSWER SECTION,但是返回了.com對(duì)應(yīng)的頂級(jí)域名服務(wù)器的 IPv4和 IPv6,選擇第一臺(tái)頂級(jí)域名服務(wù)器的IPv4,繼續(xù)解析,指令如下:

dig @192.41.162.30 yuanjava.com


指令執(zhí)行如下圖:

頂級(jí)域名服務(wù)器也給不了"yuanjava.com"的 IP地址,但返回了權(quán)威服務(wù)器的 IP地址,選擇第一臺(tái)權(quán)威域名服務(wù)器的 IP,繼續(xù)解析,指令如下:

dig @120.76.107.44 yuanjava.com


指令執(zhí)行如下圖:

最后,權(quán)威域名服務(wù)器查到了域名對(duì)應(yīng)的 IP,到此,DNS域名解析的整個(gè)過程我們就通過手動(dòng)的方法進(jìn)行了演示。

使用公開的DNS服務(wù)器

使用公開的 DNS服務(wù)器,會(huì)屏蔽內(nèi)部域名服務(wù)器查詢過程,最終給出 IP地址,分別執(zhí)行下面 2個(gè)指令:

dig @1.1.1.1 yuanjava.com dig @8.8.8.8 yuanjava.com


指令執(zhí)行結(jié)果截圖如下(截圖中沒有 Additional部分):

使用運(yùn)營(yíng)商的DNS服務(wù)器

除了上述兩種方式,我們還可以使用運(yùn)營(yíng)商自動(dòng)配置的 DNS服務(wù)器,比如下面為家庭 wifi網(wǎng)絡(luò)的示例截圖:

DNS緩存

因?yàn)橐粋€(gè)域名對(duì)應(yīng)的 IP地址變動(dòng)的頻率很低,所以,可以將域名和 IP的映射關(guān)系緩存起來并且設(shè)置一定的失效時(shí)間,從而提高數(shù)據(jù)請(qǐng)求的性能和可靠性。那么,DNS緩存有哪些呢?

瀏覽器的DNS緩存

現(xiàn)代 Web瀏覽器的設(shè)計(jì),默認(rèn)會(huì)將 DNS記錄緩存一段時(shí)間,當(dāng)發(fā)出對(duì) DNS記錄的請(qǐng)求時(shí),能從瀏覽器緩存拿到記錄,大大加速了 DNS解析過程。

在 Chrome瀏覽器中,可以通過chrome://net-internals/#dns 查看 DNS緩存的狀態(tài),如下圖:

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

除了瀏覽器會(huì)設(shè)置 DNS緩存外,在每一層的域名服務(wù)器也會(huì)設(shè)計(jì)對(duì)應(yīng)的 DNS緩存,緩存查詢的過程如下:

  • 檢查本地緩存,如果本地緩存有結(jié)果,則返回;否則,向 DNS解析器發(fā)送查詢。

  • DNS解析器檢查本地緩存,如果緩存有結(jié)果,則返回

  • 如果沒有A記錄,但有NS記錄,直接查詢權(quán)威名稱服務(wù)器

  • 如果沒有 NS記錄,查詢 TLD服務(wù)器

  • 如果沒有指向 TLD服務(wù)器的記錄,查詢根服務(wù)器

總結(jié)

本文通過在瀏覽器里面輸入一個(gè)域名為例,詳細(xì)地分析了 DNS的工作原理,另外,為了更好地理解 DNS域名解析過程,我們通過 3種方式來手動(dòng)演示整個(gè)過程。

最后,歸納一下,通過本文你可以學(xué)到什么:

  1. 什么是DNS?

  2. DNS工作原理 2.1. DNS服務(wù)器 2.2. DNS查找過程

  3. DNS 查詢類型 3.1. 遞歸查詢 3.2. 迭代查詢 3.3. 非遞歸查詢

  4. DNS查詢實(shí)例演示 4.1. dig 4.2. 使用指定的DNS服務(wù)器 4.3. 使用公開的DNS服務(wù)器 4.4. 使用運(yùn)營(yíng)商的DNS服務(wù)器

  5. DNS緩存 5.1. 瀏覽器的DNS緩存 5.2. 操作系統(tǒng)的DNS緩存

參考資料

What is DNS?

Building a Recursive DNS Resolver


作者:猿java
鏈接:https://juejin.cn/post/7372472076048515123
來源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。



該文章在 2024/5/29 10:12:47 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved