目錄

簡介

概觀

哪些資料被快取？

如何從快取中新增和刪除資料？

簡介

本文檔介紹OpenDNS/Umbrella解析程式如何快取資源記錄。

概觀

OpenDNS/Umbrella解析程式使用名為OpenDNSCache(ODC)的程式來解析DNS查詢。ODC會快取其接收的資料，以便更快、更高效地向客戶端返回結果。本文重點介紹快取的產生方式和使用時間。

本文的目標讀者是希望進一步瞭解ODC快取具體資訊的使用者（通常為域名伺服器和域管理員），或者DNS解析可能無法按預期工作的使用者。

哪些資料被快取？

根據RFC 2181(https://datatracker.ietf.org/doc/html/rfc2181)，響應可以在回覆中返回，也可以根據資料的可信度儲存在快取中。RFC在第5.4.1節中定義了7個信任級別：

1. 資料來自主區域檔案，而不是膠合資料。

- 這僅適用於授權名稱伺服器，而不適用於OpenDNS解析器

2. 來自區域傳輸的資料（膠水除外）。

- 這僅適用於授權名稱伺服器，而不適用於OpenDNS解析器

3. 包括在權威回覆的應答部分中的權威資料。

- 這適用於OpenDNSCache

4. 來自權威答案權威部分的資料。

- 這適用於OpenDNSCache

5. 來自主區域的膠水，或來自區域轉移的膠水。

- 這僅適用於授權名稱伺服器，而不適用於OpenDNS解析器

6. i)來自非權威答案答案部分的資料，和ii)來自權威答案答案答案部分的非權威資料。

- i)是我們解析器返回結果的示例。即非權威資料。

- 對於ii)，請注意權威答案中的答案部分通常只包含權威資料。 但是，如果查詢的名稱是別名(請參見第10.1.1節)，則只有描述該別名的記錄才是權威的。 客戶端可以假設其他記錄必須來自伺服器的快取。 在需要授權回答時，客戶端可以使用與別名關聯的規範名稱再次查詢。

7. (i)來自權威答覆的補充資料；（二）來自非權威答案權威部分的資料；（三）非權威性答覆提供的補充資料。

- 所有這些都適用於OpenDNSCache

- 為了將結果返回給查詢，不得對從任何這些源接收的記錄進行快取記憶體。

OpenDNSCache快取來自信任級別為3、4和6的響應的資料。如果我們收到具有更好或相等信任級別的新資料，則會替換舊的快取條目。

NS記錄例外，我們只用更好的信任級別替換資料。

如何從快取中新增和刪除資料？

過期資料不會從快取中刪除。這是SmartCache功能的基礎，通過此功能，如果我們由於某種原因無法聯絡權威機構，我們將從快取返回過期的資源記錄(RR)。

相反，每個解析器上的快取是固定大小，當向快取中新增新的RR時，最舊的RR會被刪除。這可以視覺化為隊列，新條目被新增到隊列中，將舊條目從隊列中擠出（對於外面的電腦科學家來說，這實際上是一個循環的雙鏈清單）。

請注意，如上所述，DNS響應可以包含多個具有不同信任級別的RR，而並非所有這些RR都是最初請求的資料。因此，在收到響應後，我們可能要在快取中新增多個RR。

如上所述，NS記錄可以免受此行為的影響，因為只有當資料的信任級別高於現有條目時，我們才替換快取中的NS記錄條目。這樣做是為了確保如果舊當局仍然作出反應並再次以當局身份行事，我們就能發現母當局在膠水中的變化。