LINUX.ORG.RU
ФорумAdmin

DNS over HTTP/QUIC/TLS + кеширование и статистика

 , , ,


0

1

Доброго времени суток!

Есть задача поднять DNS сервер для небольшой локальной сети с максимальной оптимизацией работы (кеширование), защитой (все что уходит «на улицу» - должно шифроваться, и максимально удобной статистикой где будет видно какие хосты запрашиваются устройствами, используемыми в локальной сети (тут шифрование не предвидится, в LAN все идет в открытую), какая доля запросов обрабатывается кешем, средняя статистика времени ответа по рекурсивным запросам к каждому upstream и так далее.

Приоритет - решения имеющиеся в репозиториях популярных сборок Linux и устанавливающиеся командой в одну строчку (yum / apt) и без использования тотальных VPN.

С задачей шифрования успешно справляется dnsproxy: его можно настроить так что все запросы «на улицу» будут уходить через безопасные соединения и не прослушиваться. При этом он отправляет запрос либо к случайному серверу, либо ко всем сразу возвращая первый ответ (настроить возможность опрашивать другое количество upstream’ов, например, 2 шт, невозможно). Несмотря на наличие параметра –cache, мне не удалось найти где хранится этот самый кеш и работает ли вообще. Статистика использования вроде бы отсутствует полностью.

pdnsd вроде бы адекватно справляется с кешированием, кеш хранится в /var/cache, теоретически по нему даже можно определить как часто и что запрашивается устройствами, но он не умеет шифровать запросы к upstream’ам, а использовать его основное преимущество (опрашивает сразу 3 вышестоящих сервера, а если они не ответят - тогда четвертый) в связке со стоящим за ним dnsproxy не имеет смысла.

bind9 имеет возможности разбрасывать запросы к разным TLD на разные upstream, есть некоторая статистика штатными методами (XML) но без статистики по каждой зоне если она не размещена на нем как primary, есть возможность вести логи всех запросов которые не запрещено анализировать cron задачей хоть раз в минуту хоть в реальном времени, но я не нашел возможности делать параллельные запросы к разным upstream и использовать защищенные (зашифрованные) протоколы - кажется что dns over http он умеет только как сервер.

Подскажите пожалуйста наиболее оптимальную реализацию - что как настроить или связку каких программных продуктов использовать.