APNIC文摘—域名伺服器和DNS解析器的多重意涵

本APNIC文摘原標題The multiple meanings of ’nameserver’ and ’DNS resolver’,由Julia Evans撰文。

本文作者最近在編撰以域名系統(Domain Name System,DNS)為主題的雜誌,所以比平常人更常思索DNS詞彙的意義。其中特別引起他注意分別是「域名伺服器」(nameserver)和「DNS解析器」(DNS resolver),這兩個詞在不同文脈下常有不同的意思。本文中,作者將試圖解釋這兩個詞可能代表的不同意涵,以及如何判斷文章中這些詞的意思。

域名伺服器的兩種意涵

域名伺服器有兩種類型,要判斷文章是在說哪一種,需要從文脈判斷。

意涵1:權威伺服器

更新域名的DNS紀錄時,這些紀錄會儲存在名為「權威伺服器」(authoritative nameserver)的伺服器中。提到特定一個域名時,域名伺服器指的就是權威伺服器。以下是幾個文句範例:

  • 更改域名的域名伺服器,以連接你的域名和Wix。
  • 幾乎所有域名都仰賴多個域名伺服器以強化穩定性;若單一域名伺服器失效或無法連線,還可以將DNS查詢送到其他伺服器。
  • 遵循域名受理註冊機構網站中的指示,自行更新你的域名伺服器紀錄。

意涵2:遞迴伺服器,也稱為DNS解析器

這些伺服器會儲存DNS紀錄的快取。瀏覽器通常不會直接向權威伺服器傳送查詢,而是先詢問DNS解析器(也就是遞迴伺服器),由後者詢問權威伺服器並取得紀錄後,再快取儲存詢問結果。

在你瀏覽網際網路時,域名伺服器的意思就會是遞迴伺服器。以下是文句範例:

  • 在某些裝置,如Windows 10中,要更改域名伺服器可能是需要無數點擊的痛苦過程。
  • 你的DNS域名伺服器破壞了你的上網體驗嗎?此更新版本新增1.1.1.1、1.0.0.1和9.9.9.9域名伺服器。
  • 更改你的網路設定,使用8.8.8.8 和8.8.4.4作為DNS伺服器。

作者本人偏好使用「DNS解析器」,主要是因為解析器的用法比遞迴伺服器更常見。

DNS解析器的意涵

DNS解析器可能是個函式庫,也可能是伺服器。雖然前文說解析器是伺服器,但某些時候解析器的確又是函式庫。

意涵1a:本地解析器(Stub resolver,函式庫版)

本地解析器(可能是函式庫也可能是伺服器)本人不會解析DNS域名,它只負責將DNS查詢送到真正的DNS伺服器。以下首先說明函式庫版本的本地解析器。

舉例而言,libc的getaddrinfo功能無法自行查詢DNS紀錄,它只會把查詢傳給在/etc/resolv.conf中找到的DNS解析器。至於如何分辨;如果它是電腦作業系統的一部分且/或是函式庫,那就是本地解析器。

以下是文句範例:

  • 解析器是在C函式庫中一套用來存取DNS的常式。這些是用來解析網頁位址的DNS伺服器,你可以列出最多三個,解析器會逐一嘗試,找出可用的伺服器。
  • 若指令成功,你會收到「成功清除DNS解析器快取」的訊息。

意涵1b:本地解析器(伺服器版)

本地解析器不一定一直都是函示庫。舉例而言, systemd-resolved和dnsmasq都是本地解析器,但他們是伺服器。你的路由可能就是跑dnsmasq。

這時候,本地解析器又稱為DNS轉寄站(forwarder)。判斷的方式:如果它是作業系統的一部分,或路由有在運行此功能,那大概就是本地解析器。

意涵2:遞迴伺服器(伺服器)

如上所述,遞迴伺服器知道怎麼找到域名的權威伺服器。如果它是unbound、bind、8.8.8.8、1.1.1.1,或由你的網路服務供應商(ISP)負責維運,那就是遞迴伺服器。

以下是文句範例:

  • pfSense® 軟體中的DNS解析器使用unbound,一個具驗證功能的遞迴快取DNS解析器。
  • 我們邀請你嘗試使用Google Public DNS作為你的主要或次要DNS解析器。
  • 我在一家規模不小的行動通訊服務供應商工作,我們目前正在建置自己的DNS解析器。

最受歡迎的DNS伺服器詞彙

作者也稍微做了一個不是很科學的調查,計算最常見的DNS解析器Google查詢結果。以下是調查發現:

搜尋詞 Google結果數
dns server 8,000,000
nameserver 4,200,000
dns resolver 933,000
public DNS server 204,000
root nameserver 42,000
recursive resolver 38,500
stub resolver 26,100
authoritative nameserver 17,000
dns resolution service 9,450
TLD nameserver 7,500
dns recursor 5,300
recursive nameserver 5,060

根據上述結果,簡單來說,當提到DNS伺服器的時候,最常意指的是域名伺服器和DNS解析器。其他如遞迴伺服器、權威伺服器、本地解析器相較之下都很少。

最後,作者表示,雖然整體而言這些詞的使用有些混亂,但他認為試圖解釋這些詞在不同脈絡的用法以釐清理解,還是比使用較不常見的同義詞彙好。

*台灣網路資訊中心(TWNIC)與亞太網路資訊中心(APNIC)合作,定期精選APNIC Blog文章翻譯摘要,提供中心部落格讀者了解目前亞太地區網路發展之最新趨勢。原文標題為The multiple meanings of ’nameserver’ and ’DNS resolver’

回到頂端