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

本APNIC文摘原標題為The root of the DNS revisited,由Geoff Huston撰文。

上篇Geoff Huston探討如何有效達成根區規模化,本篇介紹現行根區規模化的做法,並分析利弊缺失。
查詢轉向
有鑒於此,要減輕根伺服器的負擔,無此域名查詢才是首要必須解決的問題。Huston介紹現有2種避免此類查詢導向根伺服器系統的方式。
NSEC快取
首先是RFC 8198中描述的NSEC快取。若頂級標籤不存在DNSSEC簽署的空間,且查詢標註DNSSEC EDNS(0),則根伺服器回傳的NXDOMAIN回應,會包含一筆NSEC簽署紀錄 ,其中列出查詢標籤外、前後2個也不存在根區的標籤。簡單來說,NSEC紀錄不只顯示「此標籤不存在」,還告訴你任何依英文字母順序、位於指定2個標籤中的標籤都不存在。遞迴解析器快取此紀錄後,未來就可依快取紀錄回應任何在此範圍內的域名查詢。
舉例而言,針對啟動DNSSEC的「this.is.not.a.tld」查詢,根區回應的簽署NSEC紀錄會指出在.tl到.tm間沒有任何TLD。
NSEC快取可以有效協助根區適應網路擴張,大部分DNS軟體如Bind、Unbound、KNOT都支援此功能。但NSEC快取仍因循根伺服器的基礎建設與DNS查詢解析流程,只是確保遞迴解析器能獲得利用更多資訊。換句話說,這是頭痛醫頭、腳痛醫腳,並未從根本解決問題。
本地根區與ZONEMD
另一種方式是跳脫查詢/回應模式,直接將整個根區紀錄複製於遞迴解析器中。這樣一來,遞迴解析器在記錄有效期間,都可以直接回應查詢,不需再回溯至根。RFC 8806中說明此程序如何運作。
根區資料不多,以2023年2月來看,不壓縮的完整根區純文字檔案僅2,258,235 位元。但此做法也有缺點,主要是難以確認此複製轉移的區檔案全部為真。雖然在DNSSEC下根區一定經過簽署,但並非區域中所有元素都比照辦理(如TLD的名稱伺服器紀錄就沒有簽章)。客戶端不只須額外驗證所有數位簽章,因為有些記錄本就沒有簽章,無論如何都無法確認檔案全部為真。
為解決此問題,RFC 8976介紹DNS區域的訊息摘要(message digest)紀錄,又稱ZONEMD。訊息摘要是一種數位簽章壓縮檔,如果數位簽章的簽署元件有變化,訊息摘要的值也會因此改變。因此,收件人可透過比對簽署元件和訊息摘要的值,確認檔案內容是否為真。
積極探索可能解方
目前根伺服器仍以查詢/回應的框架順利運行,但Huston指出,這不代表我們不該現在就開始探索提升根區性能的選項。不再利用不存在的域名測試DNS環境以避免增加根伺服器負擔,或是在解析器使用NSEC紀錄,都是證實有效的方法。
但這樣可能還不夠。Huston認為,要徹底解決DNS過度仰賴根區的問題,必須跳脫查詢/回應的框架,追求以最符合成本效益的方式,把根區資料的即時資料放在所有遞迴解析器中。如此一來,能最有效地避免根伺服器疲於應付來自客戶端的「查無此域名」查詢。

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

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

Scroll to Top