dns: встроенный DNS
Цель
Объяснить встроенный DNS Xray, его связь с routing и outbounds, а также риски DNS-утечек и routing loops.
Теория
Встроенный DNS Xray используется не как универсальная замена системному DNS во всех случаях, а как часть логики маршрутизации, разрешения target addresses и transparent proxy/TUN-сценариев.
Официальная документация выделяет три основные задачи:
- разрешение доменов для routing phase;
- разрешение target addresses для соединений;
- обработка DNS-трафика в TUN/transparent proxy сценариях.
История
DNS стал отдельной частью Xray-конфигурации из-за необходимости split tunneling, domain-based routing и прозрачных proxy-сценариев. Если DNS остается вне модели маршрутизации, возможны утечки и неожиданные routing-решения.
Архитектура
DNS связан сразу с несколькими блоками:
client request
-> inbound
-> routing.domainStrategy
-> dns servers / hosts
-> routing IP/domain match
-> outbound
Схематически:
| Где участвует DNS | Что происходит |
|---|---|
routing.domainStrategy | решает, когда домен резолвится для IP-match |
dns.hosts | локальная подстановка доменов |
dns.servers | список DNS-серверов и правил выбора |
| DNS outbound | может использоваться для перехвата DNS-трафика |
freedom/sockopt target strategy | может требовать разрешения домена перед подключением |
Настройка
Перед настройкой DNS нужно ответить:
- должен ли DNS идти через Xray;
- нужен ли domain-based routing;
- нужен ли IP-based routing;
- какие DNS-серверы доверенные;
- что делать с локальными доменами;
- нужно ли перехватывать DNS-трафик клиента;
- как проверять отсутствие DNS-утечек.
Разбор параметров
Полный DnsObject зависит от актуальной версии Xray, поэтому в этой главе фиксируется логика, а конкретные поля нужно сверять с официальной документацией.
| Группа | Назначение | Риск |
|---|---|---|
hosts | локальные соответствия доменов | неверная подстановка ломает routing |
servers | DNS-серверы и правила выбора | неправильный сервер дает утечки |
domainStrategy в routing | когда резолвить домен для routing | влияет на IP-based правила |
| DNS outbound | обработка DNS-трафика | может создать loop при неверном routing |
disableFallback-логика | управление fallback servers | может неожиданно менять резолвер |
Типовые ошибки
- считать системный DNS и Xray DNS одним и тем же;
- настроить domain rules, но не понимать, когда домен превращается в IP;
- создать routing loop для DNS-запросов;
- не учитывать IPv6;
- проверять только доступность сайта, не проверяя DNS-путь;
- отправлять DNS через недоверенный канал при sensitive-сценарии.
Безопасность
DNS раскрывает домены, время запросов и часть пользовательского поведения. Production-конфигурация должна явно описывать, какие DNS-запросы идут через Xray, какие идут напрямую и где возможны утечки. Для публикации логов DNS нужно учитывать dnsLog и маскирование.
Чек-лист
- Понятно, используется ли встроенный DNS Xray.
routing.domainStrategyсогласован с DNS.- DNS-серверы выбраны осознанно.
- Проверены IPv4 и IPv6.
- Проверены возможные DNS-утечки.
- Нет routing loop для DNS.
- DNS-логи не раскрывают лишние данные.
Источники для сверки
- Project X: Built-in DNS Server — https://xtls.github.io/en/config/dns.html