Это для сервера с шатким восходящим DNS для внутренних имен серверов компании. Иногда, когда запись выпадает из кэша из-за TTL, и наша система пытается ее разрешить, восходящий поток не отвечает; тогда наша система как бы разваливается. Домены, которые запрашиваются, достаточно фиксированы.
Существует ли DNS-кэш для Linux, который все еще соблюдает TTL (не нужно запрашивать снова в течение X количества времени), но где он будет пытаться обновить (с exp. back-off) кэш примерно в то время, когда истекает TTL? А в это время, возможно, возвращать старый ответ, как льготный период.
Сейчас мы склоняемся к тому, чтобы перенести кэширование в приложение и базу данных. Что кажется мне немного сомнительным.
Похоже, что некоторые коммерческие устройства маршрутизации называют это "FQDN Refresh". Но я не могу найти конфигурацию для этого в нескольких пакетах с открытым исходным кодом, которые я просмотрел. Возможно, он там есть, но сформулирован немного по-другому.
Большинство кэширующих серверов имеют возможность извлекать ресурсы, срок действия которых истекает в несвязанном состоянии, эта функция называется prefetch
prefetch: yes или no
Если yes, элементы кэша сообщений извлекаются предварительно до истечения срока их действия, чтобы поддерживать кэш в актуальном состоянии. По умолчанию - нет. Включение этого параметра дает примерно на 10 процентов больше трафика и нагрузки на машину, но популярные элементы не исчезают из кэша.
RFC 8767 также позволяет кэшам возвращать просроченные данные, если они не могут обновить кэш. можно включить это в unbound с
serve-expired-client-timeout: msec
Время в миллисекундах перед ответом клиенту с просроченными данными. данными. Это, по сути, включает поведение serve-stale, как указанное в RFC 8767, которое сначала пытается разрешить запрос, прежде чем немедленно перед тем, как ответить клиенту с истекшими данными. Рекомендуемое значение согласно RFC 8767 является 1800. Установка значения 0 отключает это поведение. По умолчанию 0.
bind prefetch isc post on serve-stale