APNIC文摘 — 重新檢視DNS的根(中)

本APNIC文摘原標題為The root of the DNS revisited,由Geoff Huston撰文。
上篇Geoff Huston說明DNS解析流程及根區的重要性,本篇則探討如何有效達成根區規模化。
根區規模化
DNS權威伺服器的原始模型源自單點傳播路由的概念。單一伺服器名稱搭配單一IP位址,且此伺服器位於網路中的單一位置。要改變伺服器的負載量,就必須使用更大的伺服器,同時增加網路負載。然而,這個模型無法解決單一弱點或服務最佳化的問題。
DNS的解決方式是使用多筆域名伺服器紀錄。DNS解析器會在原始查詢沒有回應時轉向其他伺服器,如此一來,多個伺服器可以成為彼此的備案。解析器會保留各根區伺服器的查詢回應速度紀錄,並永遠選擇最快的伺服器。
利用多個伺服器擴大根區規模的問題,在於伺服器回應查詢時的完整性和大小。解析器向根區查詢域名伺服器時,需要一次知道所有符合的伺服器嗎?回應的大小取決於伺服器的數量,若伺服器太多,回應可能會超過DNS用戶資料報協定(user datagram protocol,UDP)的尺寸限制(512位元)。我們現在之所以有13個根伺服器,就是以512位元上限的DNS回應所能涵蓋的最多伺服器數量計算出來的。
而當時這個計算還只假設所有回應都只使用IPv4位址。一旦加上IPv6的AAAA紀錄,回應又會變得更大。遞迴解析器若向某個根伺服器查詢其他根伺服器,並取得所有同時支援IPv4與IPv6的13個根伺服器的回應,這個回應至少有823位元,若包含DNS安全擴充(DNS Security Extensions,DNSSEC)簽名則要1,097位元,若再加上DNS cookie,還會更大。
在今日的DNS環境中,如果查詢中並未特別標註他們可以接受超過512位元的回應,根伺服器通常只會回傳一部分:列出13個根伺服器但刪減位址清單,以符合512位元的尺寸限制。
如果不考慮新增根伺服器,有什麼其他擴大規模的方法?
第一反應可能是打造網路負載量、處理通量更大的伺服器。但在13的數量限制下,無論如何都跟不上網路擴大的速度。下一步擴大規模的方式,是將單點傳輸服務改成任意傳輸(anycast)。根伺服器單一IP位址可能只有26筆(13筆IPv4、13筆IPv6),但這些伺服器現在都使用任意傳輸技術,在多個不同地點複製提供根伺服器服務。root-servers.org 紀錄所有根伺服器服務地點數量。
根伺服器系統大力擁抱任意傳輸技術。目前全球共有1,396個根伺服器instance,相較於2020年9月的1,098個,在短短2年內新增30%。實際的權威伺服器主機會比instance地點數量更多,因為現在普遍做法是在同一個地點安裝多個伺服器引擎,將收到的查詢分散給多個備用引擎。
然而,這樣的擴張方式可能仍有不足。若2016年至2020年間的成長趨勢重現,兩年後的根伺服器負載至少必須翻倍,再兩年後再翻倍,以此類推。維持指數成長絕非易事。
任意傳播的模式可以無限擴張嗎?還是需要其他解方?
過去幾十年來有許多針對根區服務及DNS行為的服務。研究顯示,大部分根伺服器收到的查詢都是NXDOMAIN(無此域名)回應。也就是說,雖然理論上根伺服器僅需回應快取不知道的查詢,但事實上根伺服器絕大多數都在回應無此域名的查詢。
下篇將介紹現行根區規模化的做法,並分析利弊缺失。

本文內容純屬筆者個人意見,並不代表TWNIC立場

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

Scroll to Top