簡介
本文檔介紹OpenDNS/Umbrella解析程式如何快取資源記錄。
概觀
OpenDNS/Umbrella解析程式使用名為OpenDNSCache(ODC)的程式來解析DNS查詢。ODC會快取其接收的資料,以便更快、更高效地向客戶端返回結果。本文重點介紹快取的產生方式和使用時間。
本文的目標讀者是希望進一步瞭解ODC快取具體資訊的使用者(通常為域名伺服器和域管理員),或者DNS解析可能無法按預期工作的使用者。
哪些資料被快取?
根據RFC 2181(https://datatracker.ietf.org/doc/html/rfc2181),響應可以在回覆中返回,也可以根據資料的可信度儲存在快取中。RFC在第5.4.1節中定義了7個信任級別:
- 資料來自主區域檔案,而不是膠合資料。
- 這僅適用於授權名稱伺服器,而不適用於OpenDNS解析器
- 來自區域傳輸的資料(膠水除外)。
- 這僅適用於授權名稱伺服器,而不適用於OpenDNS解析器
- 包括在權威回覆的應答部分中的權威資料。
- 來自權威答案權威部分的資料。
- 來自主區域的膠水,或來自區域轉移的膠水。
- 這僅適用於授權名稱伺服器,而不適用於OpenDNS解析器
- i)來自非權威答案答案部分的資料,和ii)來自權威答案答案答案部分的非權威資料。
- i)是我們解析器返回結果的示例。即非權威資料。
- 對於ii),請注意權威答案中的答案部分通常只包含權威資料。 但是,如果查詢的名稱是別名(請參見第10.1.1節),則只有描述該別名的記錄才是權威的。 客戶端可以假設其他記錄必須來自伺服器的快取。 在需要授權回答時,客戶端可以使用與別名關聯的規範名稱再次查詢。
- (i)來自權威答覆的補充資料;(二)來自非權威答案權威部分的資料;(三)非權威性答覆提供的補充資料。
- 所有這些都適用於OpenDNSCache
- 為了將結果返回給查詢,不得對從任何這些源接收的記錄進行快取記憶體。
OpenDNSCache快取來自信任級別為3、4和6的響應的資料。如果我們收到具有更好或相等信任級別的新資料,則會替換舊的快取條目。
NS記錄例外,我們只用更好的信任級別替換資料。
如何從快取中新增和刪除資料?
過期資料不會從快取中刪除。這是SmartCache功能的基礎,通過此功能,如果我們由於某種原因無法聯絡權威機構,我們將從快取返回過期的資源記錄(RR)。
相反,每個解析器上的快取是固定大小,當向快取中新增新的RR時,最舊的RR會被刪除。這可以視覺化為隊列,新條目被新增到隊列中,將舊條目從隊列中擠出(對於外面的電腦科學家來說,這實際上是一個循環的雙鏈清單)。
請注意,如上所述,DNS響應可以包含多個具有不同信任級別的RR,而並非所有這些RR都是最初請求的資料。因此,在收到響應後,我們可能要在快取中新增多個RR。
如上所述,NS記錄可以免受此行為的影響,因為只有當資料的信任級別高於現有條目時,我們才替換快取中的NS記錄條目。這樣做是為了確保如果舊當局仍然作出反應並再次以當局身份行事,我們就能發現母當局在膠水中的變化。