什麼是域名系統? 它是如何工作的?
已發表: 2021-07-04DNS 是互聯網的電話簿!
計算機通過數字(IP 地址)相互連接和通信以發送和接收信息。 每個連接到互聯網的設備都有一個唯一的地址作為身份,其他設備使用它來識別和通信。
相比之下,人類使用他們的名字相互交流,這比打電話給某人更容易記住。
引入域名系統(DNS) 是為了彌合人與計算機之間的通信鴻溝。 DNS 將名稱解析為數字,直接將人類友好的域名解析為計算機友好的 IP 地址。

什麼是域名?
域名是識別互聯網上特定資源的唯一字符串。 它表示當前正在請求哪個 Web 應用程序服務器。 儘管您還沒有聽說過域名,但您可能已經使用過無數個域名。 是的! google.com 、 yahoo.com 、 geekflare.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查找查找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 服務器。

您的 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 個地址中的一個進行通信。

全球有 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,當我們生活在擁有無數網站的互聯網世界時,這對我們所有人來說將是一個沉重的負擔。
