Вопрос или проблема
Можно ли настроить AdGuard Home так, чтобы он заранее кэшировал популярные DNS-записи, подобно опции предварительной выборки unbound?
предварительная выборка:
Если да, элементы кэша сообщений предварительно выбираются до истечения срока действия, чтобы поддерживать кэш в актуальном состоянии. Включение этой опции дает около 10 процентов больше трафика и нагрузки на машину, но популярные элементы не истекают из кэша.
По умолчанию: нет
У меня соединение с относительно высокой задержкой, и я не хочу увеличивать задержку, используя unbound
. Единственная похожая настройка, которую я смог найти в AdGuard Home, это cache_optimistic
, но она кажется немного другой:
cache_optimistic
(с версии v0.107.0) — Заставить AdGuard Home отвечать из кэша даже тогда, когда записи истекли, и пытаться обновить их. До v0.108.0-b.5 TTL для таких ответов составляет 60 секунд, а с v0.108.0-b.5 — 10 секунд.
Меня интересует подход unbound
к предварительной выборке: увеличенный трафик и размер кэша для 10% наиболее популярных записей, но всегда актуальных. Есть ли способ внедрить это в AdGuard Home или комбинированно с dnsmasq
?
Я использую AdGuard Home на OpenWrt.
Предварительная выборка кэшированных DNS-записей, которые близки к истечению, не реализована в AdGuard Home.
Существует открытая задача с запросом этой функции в официальном репозитории, но над ней уже долгое время не работали.
Решение от @Legendary_Lava на Reddit:
Это, вероятно, не решение, которое вы хотите, но это обходной путь, который я использую и с хорошими результатами. Adguard Home позволяет делать параллельные запросы, когда он отправляет запрос всем резолверам одновременно, но используется только первый ответ. У меня Unbound настроен как один из резолверов. Unbound не всегда самый быстрый, но это нормально, другие DNS-серверы берут на себя нагрузку. Запросы все еще отправляются к резолверу Unbound, так что он знает 10% лучших ответов для предварительной выборки. Предварительно выбранные запросы, естественно, отвечают быстрее, чем запросы, выходящие в интернет. Просто будьте осторожны, используя несколько DNS-серверов, так как DNSSEC хорош только настолько, насколько его слабое звено, поэтому используйте root canary и dns check, чтобы проверить, что DNSSEC работает должным образом.
Ответ или решение
Предварительная выборка DNS с помощью AdGuard Home
Введение
С уменьшением задержек и увеличением скорости работы с DNS, все больше пользователей рассматривают методы оптимизации своих сетевых настроек. Спецификация prefetch
в Unbound позволяет предвыборку DNS-записей, что обеспечивает более быстрые ответы для популярных и часто запрашиваемых доменов. В данной статье мы рассмотрим, возможно ли подобное поведение в AdGuard Home и взглянем на альтернативные решения, которые могут обеспечить схожие преимущества.
Текущие возможности AdGuard Home
На данный момент AdGuard Home не поддерживает функцию предварительной выборки DNS-записей, аналогичную prefetch
в Unbound. В официальной документации AdGuard Home представлена опция cache_optimistic
, которая позволяет системе отвечать на запросы, используя устаревшие записи из кеша, при этом осуществляя попытки их обновления. Однако такая функция не обеспечивает того уровня оптимизации, который вы ищете, поскольку устаревшие записи могут быть неактуальными.
Статус запроса функции
Существующий запрос на добавление функции предварительной выборки в AdGuard Home находится в статусе открытого вопроса на GitHub. К сожалению, работа над данным функционалом не видима в крупных обновлениях, что заставляет пользователей искать альтернативные решения.
Альтернативное решение с использованием Unbound и AdGuard Home
Одним из возможных обходных путей является использование Unbound в сочетании с AdGuard Home, как предложил пользователь Reddit. AdGuard Home поддерживает параллельные запросы к нескольким DNS-серверам одновременно. Это означает, что вы можете настроить Unbound как один из резолверов для AdGuard Home. Хотя Unbound может не всегда обеспечивать максимальную скорость, он всё-таки сможет предлагать решения для популярных записей.
Преимущества данного подхода:
-
Увеличение скорости: Поскольку Unbound будет знать о самых популярных DNS-записях, он сможет быстрее предоставлять информацию по этим доменам.
-
Снижение задержек: Запросы будут отправляться ко всем резолверам одновременно, что позволит уменьшить время ответа при обращении к активно используемым записям.
-
Поддержка DNSSEC: Однако важно отметить, что при использовании нескольких DNS-серверов, безопасность и целостность DNSSEC зависит от самого слабого пункта в этой цепи. Поэтому стоит периодически проверять работоспособность DNSSEC с помощью таких сервисов, как Root Canary и DNS Check.
Заключение
Пока что AdGuard Home не поддерживает возможность предварительной выборки DNS-записей в том виде, как это реализовано в Unbound. Но сочетание AdGuard Home и Unbound предлагает обоснованный и рабочий подход к оптимизации обработки DNS-запросов. Это решение может уменьшить задержки, улучшая общую производительность вашей сети при использовании DNS.
Тем не менее, остается надежда на будущее обновление AdGuard Home, которое может внедрить подобные функции. Для поддержания вашей системы в актуальном состоянии, следите за обновлениями в официальном репозитории и активно участвуйте в обсуждениях на разных форумах.