Linux: как настроить локальный DNS-резолвер, который может отправлять запросы нескольким серверам имен параллельно?

Linux: как настроить локальный DNS-резолвер, который может отправлять запросы нескольким серверам имен параллельно?

Как настроить локальный DNS-резолвер, который может отправлять запросы нескольким серверам имен параллельно?

Зачем мне это нужно:

  • Надежность 1.1.1.1 или 8.8.8.8 не очень высокая. (За последнюю неделю наблюдались часы простоя или нестабильного времени для 1.1.1.1)
  • На машине размещен прокси-сервер https/socks5, поэтому поиск имени имеет решающее значение и происходит довольно часто.
    Параллельный поиск предпочтителен для уменьшения задержки, если один сервер имен не обслуживает.

Машина Linux — это сервер Ubuntu 22.04.
Служба прокси-сервера https/socks5 не может обрабатывать несколько DNS-серверов, поэтому локальный резолвер должен обрабатывать параллельный или резервный поиск для него.

решение1

Согласно документации это возможно с помощью Dnsmasq.

Параметр, который следует использовать:

--all-servers
По умолчанию, когда dnsmasq имеет более одного доступного сервера upstream, он будет отправлять запросы только на один сервер. Установка этого флага заставляет dnsmasq отправлять все запросы на все доступные серверы. Ответ от сервера, который ответил первым, будет возвращен первоначальному запрашивающему.

Это можно сделать, отредактировав /etc/default/dnsmasqи добавив –all-servers DNSMASQ_OPTS следующим образом:

DNSMASQ_OPTS="--all-servers"

Использованная литература :

решение2

DNSMASQ не может сделать это сам по себе, но я видел, как Pihole (который использует DNSMASQ за кулисами) используется с Unbound, давая вам рекурсивный DNS-сервер. Это означает, что ваш сервер будет напрямую запрашивать TLD-сервер и полностью пропускать Google/Cloudflare.

Связанный контент