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

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

DNS域名系統如何工作?這篇文章幫你講透!

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

什么是DNS?

其實,當用戶在瀏覽器輸入“example.com”進行訪問時,瀏覽器會自動向 DNS服務器發送請求,DNS解析器將域名轉換為IP地址,然后將 IP返回給瀏覽器,瀏覽器再訪問該 IP,因此,整個過程中用戶無需知道網站的 IP地址,卻可輕松訪問網站。如下圖:

在上述描述中,有一個核心點是 DNS,那么,DNS是什么呢?

DNS是 Domain Name System的首字母縮寫,翻譯為域名系統,域名和IP地址的映射關系都保存在 DNS服務器上,因此,DNS是互聯網的電話簿。

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

DNS工作原理

要了解 DNS的工作原理,需要從 DNS服務器和 DNS查詢過程兩個主要點來進行講解。

DNS服務器

在整個 DNS工作過程中,會經歷 4種 DNS服務器,整個請求過程如下圖:

1.DNS解析器

DNS解析器是一種服務器,負責整個域名轉IP的過程,當收到客戶端 DNS查詢請求時,DNS解析器會根據"DNS查詢類型"來查詢對應的 IP地址。因此,遞歸 DNS解析器是域名轉IP的總負責人。

2.根域名服務器

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

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

3.頂級域名服務器

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

4.權威性域名服務器

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

  • 如果權威域名服務器確認域名不存在,則返回一個 NXDOMAIN(Non-Existent Domain)響應

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

因此,可以把權威性域名理解成一個數據行

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

DNS是一個分布式系統,內部的域名服務器以及其保存的域名是一個樹狀結構,如下圖:

DNS查找過程

DNS 查找主要有以下 8個步驟:

  1. 用戶在 Web瀏覽器中輸入“yuanjava.com”地址時,查詢會傳輸到 Internet中,并被 DNS解析器接收

  2. DNS解析器收到請求后,向根域名服務器發出查詢請求

  3. 根域名服務器收到請求后,發現后綴是 .com,表明"yuanjava.com"這個域名是由 .com區域管理,然后返回頂級 DNS的地址

  4. DNS解析器拿到了根域名服務器的響應后,向 .com頂級域名服務器發出請求

  5. 頂級域名服務器收到請求后,響應其權威 DNS服務器地址

  6. DNS解析器拿到了頂級域名服務器的響應后,隨后向權威域名服務器進行請求

  7. 權威域名服務器收到請求后,使用“yuanjava.com”查詢到對應的 IP地址并進行響應

  8. 最后,DNS解析器使用 IP地址響應 Web瀏覽器

上述 8個 DNS查找步驟可以返回“yuanjava.com”的 IP地址后,最后,瀏覽器使用該 IP地址向服務器發出 HTTP請求,獲取對應的數據顯示在網頁中。

整個過程如下圖:

DNS 查詢類型

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

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

遞歸查詢

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

迭代查詢

在迭代查詢中,DNS客戶端允許 DNS服務器返回它能提供的最佳答案。如果查詢的 DNS服務器沒有匹配的記錄,它會返回一個指向更低層域名空間的 DNS服務器的引用,客戶端再向引用地址發出查詢。這個過程會繼續,直到找到結果或出現錯誤或超時。

非遞歸查詢

非遞歸查詢通常發生在 DNS解析器客戶端查詢 DNS服務器時,DNS服務器時能直接查到記錄,要么因為它是該記錄的權威服務器,要么因為該記錄存在于它的緩存中。通常,DNS服務器會緩存 DNS記錄以減少帶寬消耗和上游服務器的負載。

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

DNS查詢實例演示

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

  • 使用指定的 DNS服務器

  • 使用公開的 DNS服務器

  • 使用運營商默認的 DNS服務器

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

dig

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

dig的基本語法

dig [@server] [name] [type] 


  • @server:指定要查詢的 DNS服務器,如果省略,默認使用系統配置的 DNS服務器

  • name:需要查詢的域名

  • type:查詢的記錄類型(如A、AAAA、MX、TXT等,如果省略,默認查詢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服務器查詢 yuanjava.com

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


2.結果返回

dig的輸出通常包含以下 6個部分:

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

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

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

  • Authority部分:顯示權威名稱服務器的信息

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

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

講解完 dig指令后,我們正式進入 DNS解析的實戰演習:

使用指定的DNS服務器

首先,使用 13臺根域名服務器的任意一臺進行解析,這里以"198.41.0.4"為例,指令如下:

dig @198.41.0.4 yuanjava.com

指令執行如下圖:

 

因為根域名服務器給不了"yuanjava.com"的 IP地址,所以執行結果中沒有 ANSWER SECTION,但是返回了.com對應的頂級域名服務器的 IPv4和 IPv6,選擇第一臺頂級域名服務器的IPv4,繼續解析,指令如下:

dig @192.41.162.30 yuanjava.com


指令執行如下圖:

頂級域名服務器也給不了"yuanjava.com"的 IP地址,但返回了權威服務器的 IP地址,選擇第一臺權威域名服務器的 IP,繼續解析,指令如下:

dig @120.76.107.44 yuanjava.com


指令執行如下圖:

最后,權威域名服務器查到了域名對應的 IP,到此,DNS域名解析的整個過程我們就通過手動的方法進行了演示。

使用公開的DNS服務器

使用公開的 DNS服務器,會屏蔽內部域名服務器查詢過程,最終給出 IP地址,分別執行下面 2個指令:

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


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

使用運營商的DNS服務器

除了上述兩種方式,我們還可以使用運營商自動配置的 DNS服務器,比如下面為家庭 wifi網絡的示例截圖:

DNS緩存

因為一個域名對應的 IP地址變動的頻率很低,所以,可以將域名和 IP的映射關系緩存起來并且設置一定的失效時間,從而提高數據請求的性能和可靠性。那么,DNS緩存有哪些呢?

瀏覽器的DNS緩存

現代 Web瀏覽器的設計,默認會將 DNS記錄緩存一段時間,當發出對 DNS記錄的請求時,能從瀏覽器緩存拿到記錄,大大加速了 DNS解析過程。

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

操作系統的DNS緩存

除了瀏覽器會設置 DNS緩存外,在每一層的域名服務器也會設計對應的 DNS緩存,緩存查詢的過程如下:

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

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

  • 如果沒有A記錄,但有NS記錄,直接查詢權威名稱服務器

  • 如果沒有 NS記錄,查詢 TLD服務器

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

總結

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

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

  1. 什么是DNS?

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

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

  4. DNS查詢實例演示 4.1. dig 4.2. 使用指定的DNS服務器 4.3. 使用公開的DNS服務器 4.4. 使用運營商的DNS服務器

  5. DNS緩存 5.1. 瀏覽器的DNS緩存 5.2. 操作系統的DNS緩存

參考資料

What is DNS?

Building a Recursive DNS Resolver


作者:猿java
鏈接:https://juejin.cn/post/7372472076048515123
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。



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