內網DNS主要可劃分為四個功能模組:內建權威普通區、內建權威加速區、轉寄模組和遞迴模組。對於部署在雲環境中的ECS或容器發出的網域名稱查詢請求,命中內建權威加速區的解析結果不會進行緩衝,因而它們不受TTL值的限制。本文將重點討論剩餘三個模組的緩衝TTL策略和緩衝清除機制。
2025年4月30日(UTC+8)起,新開通雲解析PrivateZone的使用者在建立Zone時,預設將設定為加速區Zone。
2026年4月30日(UTC+8)起,所有使用者的普通區內建權威Zone將自動切換至加速區。切換後解析請求量可能增加,導致使用成本上升。建議為ECS開啟NSCD,以減少無本機快取引發的解析請求增長。
內建權威普通區&轉寄模組
內建權威普通區與轉寄模組共用相同的一級緩衝結構,其工作原理如下圖所示:
緩衝TTL改寫機制
內網DNS會針對命中內建權威普通區和轉寄模組的請求應答緩衝TTL進行改寫,緩衝 TTL 改寫機制主要包括以下幾個方面:
肯定應答情況下,即當查詢請求擷取查詢網域名稱對應的確切解析結果:
若返回的解析記錄TTL值超過86400秒,緩衝系統將該記錄的 TTL 改寫為 86400 秒
若返回的解析記錄TTL值小於10秒,緩衝系統將該記錄的 TTL 改寫為 10 秒
若返回的解析記錄TTL值處於10秒至86400秒之間(含10秒和86400秒),緩衝將直接採用原始來源站點DNS的 TTL 值
否定應答情況下,即當應答結果為網域名稱不存在(NXDOMAIN)或查詢類型對應記錄不存在(NXRRSET)時:
緩衝系統將返回的解析記錄TTL值統一改寫為5秒。
NXDOMAIN:表示查詢的網域名稱不存在於網域名稱系統中;
NXRRSET:表示網域名稱是存在的,但所請求的特定類型的記錄在該網域名稱下不存在。例如請求AAAA記錄,但是該網域名稱並未配置AAAA記錄;
解析記錄緩衝邏輯:應答結果在緩衝隊列中的實際TTL時間,按照修改後的TTL值執行。
緩衝清除&更新機制
內網DNS的緩衝可以儲存一定容量的解析記錄,按照解析記錄訪問的頻次進行排序,熱度低的網域名稱解析記錄會被從緩衝中清除。所以緩衝中的解析記錄清除和更新機制受TTL是否到期和緩衝隊列是否佔滿兩個因素的影響。
緩衝隊列不滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄,來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄保留在緩衝中。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者響應逾時,則繼續返回老的緩衝記錄給終端
緩衝隊列佔滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄(包括肯定應答和否定應答),來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄從緩衝中清除。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者響應逾時,則終端擷取不到解析結果
遞迴模組
內網DNS為雲上的終端及雲產品提供公網遞迴服務,其緩衝模組為二級緩衝結構,原理圖如下:
緩衝TTL改寫機制
一、緩衝模組
肯定應答情況下,即當查詢請求擷取查詢網域名稱對應的確切解析結果:
緩衝系統將返回的解析記錄的 TTL 統一改寫為 10 秒
否定應答情況下,即當應答結果為網域名稱不存在(NXDOMAIN)或查詢類型對應記錄不存在(NXRRSET)時:
緩衝系統將返回的解析記錄TTL值統一改寫為5秒。
解析記錄緩衝邏輯:應答結果在緩衝隊列中的實際TTL時間,按照改寫後的TTL值執行。
二、遞迴模組
TTL值不做任何改寫,遵循公網權威DNS設定的TTL值,包括肯定應答和否定應答。
解析記錄緩衝邏輯:應答結果在緩衝隊列中的實際TTL時間,按照修改後的TTL值執行。
緩衝清除&更新機制
一、緩衝模組
緩衝隊列不滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄,來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄從緩衝中清除。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者 響應逾時 ,則繼續返回老的緩衝記錄給終端
緩衝隊列佔滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄(包括肯定應答和否定應答),來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄從緩衝中清除。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者 響應逾時 ,則終端擷取不到解析結果
二、遞迴模組
緩衝隊列不滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄,來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄從緩衝中清除。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者 響應逾時 ,則繼續返回老的緩衝記錄給終端
緩衝隊列佔滿
緩衝到期前,解析記錄保留在緩衝中。終端的訪問均命中緩衝中的解析記錄(包括肯定應答和否定應答),來源站點變更後的解析記錄不會被擷取
緩衝到期後,解析記錄從緩衝中清除。終端的訪問會觸發去來源站點DNS查詢,然後將返回的解析記錄更新在緩衝中(包括肯定應答和否定應答);如果此時應答結果為 servfail 或者 響應逾時 ,則終端擷取不到解析結果