DNS
DNS — это исходящий протокол, который в основном используется для перехвата и пересылки DNS-запросов.
Этот исходящий протокол может принимать только DNS-трафик (включая запросы по протоколам UDP и TCP), другие типы трафика вызовут ошибку.
При обработке DNS-запросов этот исходящий протокол пересылает запросы IP-адресов (то есть A и AAAA) на встроенный DNS-сервер. Другие типы запросов см. в разделе nonIPQuery ниже.
OutboundConfigurationObject
{
"network": "tcp",
"address": "1.1.1.1",
"port": 53,
"userLevel": 0,
"nonIPQuery": "skip",
"blockTypes": [65]
}2
3
4
5
6
7
8
network: "tcp" | "udp"
Изменяет транспортный протокол DNS-трафика. Допустимые значения: "tcp" и "udp". Если не указано, используется исходный транспортный протокол.
address: address
Изменяет адрес DNS-сервера. Если не указано, используется адрес, указанный в источнике.
port: number
Изменяет порт DNS-сервера. Если не указано, используется порт, указанный в источнике.
userLevel: number
Уровень пользователя. Подключение будет использовать локальную политику, соответствующую этому уровню пользователя, что в основном влияет на тайм-ауты данного outbound.
nonIPQuery: string
Управляет запросами, не относящимися к IP-адресам (не A и AAAA).
"drop": отбрасывать (без ответа);"skip": не обрабатывать встроенным DNS-сервером и пересылать на целевой сервер;"reject": вернуть DNS reject-ответ (явный отказ), что обычно лучше, чем ждать тайм-аут при"drop".
Значение по умолчанию — "reject".
blockTypes: array
Массив целых чисел (int), определяющий типы DNS-запросов, которые необходимо блокировать. Например, "blockTypes": [65,28] означает блокировку типа 65 (HTTPS) и 28 (AAAA). Распространенный сценарий использования — блокировка типа 65 для предотвращения инициализации ECH браузерами.
Если тип запроса совпадает с blockTypes, он будет заблокирован до дальнейшей обработки:
- если
nonIPQueryравно"reject", возвращается DNS reject-ответ; - в остальных случаях запрос будет отброшен.
Эта опция обычно используется вместе с nonIPQuery: "skip", чтобы «пересылать прочие запросы (не A/AAAA), но блокировать отдельные типы». Если nonIPQuery установлено в "drop" или "reject", то запросы не A/AAAA и так не будут пересылаться, и blockTypes в основном имеет смысл только для блокировки A/AAAA (что не рекомендуется; лучше используйте queryStrategy во встроенном DNS, чтобы управлять IPv4/IPv6).