Ich suche nach einer Möglichkeit, Einträge in meinem Cache automatisch zu aktualisieren, wenn dieser abläuft.
Beispielsweise hat example.com eine TTL von 60. Ich möchte sie nach Ablauf automatisch aktualisieren, sodass bei einer Abfrage der Benutzer von example.com bereits eine neue Version im Cache vorhanden ist.
Ist dies innerhalb von Bind möglich?
Danke!
Antwort1
BIND
unterstützt eine Technik namens prefetch
. Mit Prefetch aktualisiert BIND automatisch Einträge, die bald ablaufen. Nachfolgend sehen Sie die Syntax von Prefetch.
sudo vim /etc/bind/named.conf.options
...
options {
...
prefetch 2 9;
};
...
Wie Sie sehen, hat dies zwei Zahlen, die trigger
(hier 2) und die eligibility
(hier 9). Dies weist BIND an, DNS-Einträge für alle Einträge zu aktualisieren, deren anfängliche TTL größer als 9 Sekunden war, wenn die verbleibende TTL unter 2 Sekunden fällt. Daher werden nicht alle Einträge blind aktualisiert, sondern nur Einträge überwacht, deren anfängliche TTL größer als die Berechtigung ist, und sobald die verbleibende TTL für diese Einträge unter den Auslösewert fällt, werden sie aktualisiert. Die Werte für Berechtigung und Auslöser sind in Sekunden angegeben.
Nehmen wir also an, example.com hat eine TTL von 60 Sekunden (also die TTL, als der Datensatz abgerufen wurde). Ich möchte sicherstellen, dass der Eintrag aktualisiert wird, wenn die verbleibende TTL unter 10 Sekunden fällt. Folgendes ist meine Prefetch-Option in der Konfigurationsdatei.
prefetch 10 60
Weiterführende Literatur:https://kb.isc.org/article/AA-01122/0
Antwort2
Nein, gibt es nicht. Der Cache ist so konzipiert, dass er Einträge automatisch „aufzeichnet“, wenn sie zum ersten Mal aufgerufen werden, um später schneller darauf zugreifen zu können. Das „Vorab-Caching“ von Einträgen, wie Sie es beschreiben, bringt keinen Leistungsgewinn.