DNS 根伺服器

DNS 根伺服器是 DNS 查閱中的第一站。

學習目標

閱讀本文後,您將能夠:

  • 定義 DNS 根伺服器
  • 瞭解 13 個根伺服器網路在全球範圍內的分佈情況
  • 概述解析程式如何與根伺服器通訊

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

所有 Cloudflare 方案中均包含免費 DNS

什麼是 DNS 根伺服器?

Domain Name System (DNS) 的管理透過包含不同受管理分區或「區域」的階層進行,其根區域位於該階層的最頂部。根伺服器是在根區域中運作的 DNS 名稱伺服器。這些伺服器可以直接回答針對根區域內儲存或快取的記錄的查詢,還可以將其他請求引向相應的頂層網域 (TLD) 伺服器。TLD 伺服器是 DNS 階層中比根伺服器低一級的 DNS 伺服器群組,它們是解析 DNS 查詢的必要部分。

DNS 階層

在未快取的 DNS 查詢期間,每當使用者在瀏覽器中輸入網址時,此動作都會觸發 DNS 查閱,而且所有 DNS 查閱都會從根區域開始。在到達根區域後,查閱將沿著 DNS 系統的階層向下移動,先存取 TLD 伺服器,然後存取特定網域(可能是子網域)的伺服器,直到最終到達正確網域的權威名稱伺服器,其中包含正在尋找的網站的數字 IP 位址。然後將此 IP 位址傳回給用戶端。有趣的是,儘管所需的步驟數量很多,但此過程可能會很快進行。

根伺服器是網際網路基礎結構的基本部分;如果沒有它們,Web 瀏覽器和許多其他網際網路工具將無法運作。有 13 個不同的 IP 位址服務於 DNS 根區域,全球有數百個備援根伺服器來處理對根區域的請求。

為什麼只有 13 個 DNS 根伺服器位址?

一個常見的誤解是,世界上只有 13 個根伺服器。實際上還有很多,但仍然只有 13 個 IP 位址用於查詢不同的根伺服器網路。DNS 原始架構的限制要求根區域中最多只能有 13 個伺服器位址。在網際網路的早期,13 個 IP 位址中的每一個都只有一個伺服器,其中大部分位於美國。

現在,13 個 IP 位址中的每一個都有多個伺服器,它們使用 Anycast 路由來根據負載和接近程度分配請求。目前,地球上每個人口稠密的大陸都有 600 多個不同的 DNS 根伺服器。

誰運作 DNS 根伺服器?

Internet Corporation for Assigned Names and Numbers (ICANN) 為根區域中的 13 個 IP 位址之一運作伺服器,並將另外 12 個 IP 位址委派給各種組織,包括 NASA、馬里蘭大學和 Verisign(這是唯一運作兩個根 IP 位址的組織)。Cloudflare 幫助向名為 F-Root 的根伺服器提供 DNS Anycast 服務;Cloudflare 根據與 ISC(F-Root 營運者)的合約提供其他 F-Root 執行個體。瞭解有關 Cloudflare 如何支援 F-Root 的更多資訊。

解析程式如何找到 DNS 根伺服器?

由於 DNS 根區域位於 DNS 階層的頂端,因此在 DNS 查閱中無法將遞迴解析程式導向它們。因此,每個 DNS 解析程式都有一個內建在其軟體中的 13 IP 根伺服器位址的清單。每當啟動 DNS 查閱時,遞迴程式的第一次通訊就是與這 13 個 IP 位址之一的通訊。

如果 DNS 根伺服器變得不可用,會發生什麼情況?

由於使用 Anycast 路由和大量備援,根伺服器非常可靠。但在極少數情況下,根伺服器將不得不更新其 IP 位址。在這種情況下,遞迴解析程式可以繼續使用根區域中的其他 12 個 IP 位址來執行 DNS 查詢,直到它們的軟體更新為擁有全部 13 部伺服器的正確位址。由於解析程式會一直重試,直到到達工作中的根伺服器,因此當一部根伺服器關閉時,網際網路的正常作業不會中斷。進一步瞭解 Cloudflare DNS 如何使用 Anycast 路由來提高可靠性。