什麼是域名系統? 它是如何工作的?

已發表: 2021-07-04

DNS 是互聯網的電話簿!

計算機通過數字(IP 地址)相互連接和通信以發送和接收信息。 每個連接到互聯網的設備都有一個唯一的地址作為身份,其他設備使用它來識別和通信。

相比之下,人類使用他們的名字相互交流,這比打電話給某人更容易記住。

引入域名系統(DNS) 是為了彌合人與計算機之間的通信鴻溝。 DNS 將名稱解析為數字,直接將人類友好的域名解析為計算機友好的 IP 地址。

域名系統

什麼是域名?

域名是識別互聯網上特定資源的唯一字符串。 它表示當前正在請求哪個 Web 應用程序服務器。 儘管您還沒有聽說過域名,但您可能已經使用過無數個域名。 是的! google.comyahoo.comgeekflare.com等都是域名。

根域

什麼是 DNS?我們為什麼需要它?

人類通過瀏覽器使用 amazon.com、geekflare.com 等域名在線訪問信息。 但是 Web 瀏覽器只能通過Internet 協議地址(IP 地址)進行通信。

DNS 通過將提供的域名轉換為其各自的 IP 地址來幫助我們,以便瀏覽器可以加載請求的資源。

域名解析

現在,讓我們打個比方來演示 DNS 的需求:

如果您想撥打某人的電話,請先拿起您的電話,然後滾動或搜索已保存的聯繫人列表,然後撥打電話。

即使我們只能通過電話號碼給某人打電話,也很難為我們所有的聯繫人記住他們。 這是我們在電話簿中使用姓名保存手機號碼的主要原因。

DNS 使用相同的機制,假設它有一個數據庫,其中包含具有相應域名的 IP 地址列表。

在當今世界,萬維網上有大約 15 億多個網站。 我們在日常生活中會用到其中的一些。 不可能記住所有站點的 IP 地址。 DNS 記住它們是為了讓我們的生活更輕鬆。

它是如何工作的?

當用戶在瀏覽器中輸入 URL(域)時,比如 geekflare.com,瀏覽器需要找到 Google 的 IP 地址才能連接到它。 從給定域名中查找 IP 地址的過程稱為DNS 解析。

地址欄網址

計算機通過 IP 地址而不是域名識別網站位置。 當您輸入 geekflare.com 時,瀏覽器會進行 DNS 查找以獲取相應的 IP 地址,然後將我們的請求轉發到 Geekflare 服務器,該服務器將 Geekflare 的登錄頁面發回。

DNS 查找發生在幕後的Web 瀏覽器中,不需要輸入 geekflare.com 的用戶進行交互。

要獲取網站的 IP 地址,請在命令提示符或終端中嘗試以下命令:

 nslookup www.example.com

您可以直接在瀏覽器中輸入此結果的 IP 地址。 但是有些網站可能已經屏蔽了直接IP訪問,您將無法獲得預期的結果。

DNS 工作流程

現在,我們知道每次鍵入域名時都會請求一個 IP 地址。 讓我們看看這個過程是如何發生的。

當在瀏覽器中輸入域名以獲取其 IP 地址時,它首先會在本地緩存中查找。 此本地緩存數據可能在以下兩個位置中的任何一個可用:

  • Web 瀏覽器緩存。
  • 操作系統的緩存。

DNS 查詢解析器

在DNS查找查找IP的過程中,當請求的域名沒有可用的緩存數據時,一組DNS服務器協同工作來查找IP地址。

與遠程 DNS 服務器的過度通信是一個耗時的過程,會導致性能降低。 為了防止這種情況,生成的 IP 地址將存儲在操作系統緩存、瀏覽器緩存、DNS 解析器緩存中。

DNS 服務器的類型

DNS 服務器有四種類型:

  • 遞歸解析器
  • 根域名服務器
  • 頂級域 (TLD) 名稱服務器
  • 權威域名服務器

讓我們以這些 DNS 服務器如何通過相互協調來工作為例:

假設您需要一本書,因此您去當地書店購買,然後通過告訴店主您想要的書來聯繫店主,您充當客戶,店主是遞歸解析器

然後所有者去查看指向不同機架集 ( TLD ) 的商店索引(根名稱服務器)。

找到合適的書架後,他會轉到那個特定的書架 ( TLD ),並嘗試找到有書可用的完美書架(權威名稱服務器),並找到客戶要求的合適書。

DNS遞歸解析器

如果 IP 在本地緩存數據中不可用,它會將請求轉發到DNS 遞歸解析器,也稱為 DNS遞歸器。 這種將請求發送到 DNS Recursor 以查找 IP 的方法稱為DNS 查詢

DNS 遞歸器是一個特殊的服務器,用於接收客戶端的 DNS 查詢請求,並在需要時發出一些額外的請求,以滿足請求的客戶端。

它通常是您的Internet 服務提供商(ISP) 的 DNS 服務器。

DNS 的工作原理步驟
圖片來自瓦羅尼斯

您的 ISP 提供的這些 DNS 服務器也將在其數據庫中緩存。 如果給定域的預期 IP 位於緩存內存中,那麼它將簡單地將其提供給請求的客戶端。

否則,在查找 IP 時會發生以下步驟:

  • DNS Recursor 將請求發送到根名稱服務器。 ( DNS Recursor → Root Nameserver )
  • 根域名服務器不會有域名的IP信息,但是會提供對應的TLD服務器的信息,可以幫助我們找到。 (根域名服務器 → DNS 遞歸
  • 現在,遞歸器向 TLD 服務器詢問所提供域的 IP。 ( DNS Recursor → TLD 服務器)
  • TLD服務器會給出對應的擁有IP的權威域名服務器的信息,是DNS查詢的最後一站。 ( TLD 服務器 → DNS 遞歸)
  • 這時遞歸者向權威服務器詢問域名的IP地址。 ( DNS Recursor → 權威域名服務器)
  • 最後,權威域名服務器找到給定域名的IP地址並將其發送給遞歸者。 (權威域名服務器 → DNS Recursor )
  • 最後,遞歸器將結果存儲在其緩存數據庫中,並將 IP 地址發送回請求的客戶端。 ( DNS 遞歸 → 客戶端

根名稱服務器

根域名服務器(又名'.' nameserver )是域翻譯過程的第一步。 讓我們假設收到的請求是www.google.com,現在根名稱服務器將搜索適當的.com TLD 服務器並將該 TLD 服務器 IP 發送到遞歸。

根名稱服務器位於域層次結構的頂部。 遞歸解析器不知道如何將請求分派到根服務器。

因此,每個遞歸解析器都配置了一個包含 13 個 IP 根服務器地址的列表。 每當發生 DNS 查找時,遞歸解析器的第一次通信將與這 13 個地址中的一個進行通信。

DNS 域級別層次結構
圖片來自 netnod

全球有 1300 多個可用的根服務器,由 12 個不同的組織運營。 但是它們只能通過這 13 個數字地址訪問。

由於只有 13 個根服務器 IP 地址,因此在任何給定時間從任何單個位置只能看到 13 個根名稱服務器。

頂級域名服務器

頂級域名服務器維護共享公共擴展名的所有域名的信息。 這是查找IP地址的第二步。

隨後,TLD 服務器將從 DNS 遞歸檢查收到的域名 ( google.com ) 並蒐索適當的權威名稱服務器。

在找到 google.com 的權威服務器後,它將其 IP 地址發送回 DNS 遞歸。

頂級域名

那裡有不同類型的 TLD,其中一些是:

  • gTLD – 通用 TLD(.com、.net、.org 等)
  • ccTLD – 國家代碼 TLD(.in、.us、.uk 等)
  • sTLD – 贊助的 TLD(.edu、.gov 等)

權威域名服務器

權威名稱服務器包含特定於特定域的信息。 它是 DNS 查詢旅程的最後一站。

要求權威服務器提供域的A 記錄(代表“地址”記錄),其中包含託管網站的服務器的 IP 地址。

如果它有請求的域記錄的信息,它會將其IP地址返回給遞歸器,遞歸器再將其返回給請求的客戶端。

結論

域名系統是互聯網的重要方面之一。 這是連接到 Internet 的第一步。 它確保互聯網不僅用戶友好,而且有助於有效加載請求的內容。

沒有DNS,當我們生活在擁有無數網站的互聯網世界時,這對我們所有人來說將是一個沉重的負擔。