44 lines
2.9 KiB
Markdown
Raw Normal View History

# DNS
DNS — это исходящий протокол, который в основном используется для перехвата и пересылки DNS-запросов.
Этот исходящий протокол может принимать только DNS-трафик (включая запросы по протоколам UDP и TCP), другие типы трафика вызовут ошибку.
При обработке DNS-запросов этот исходящий протокол пересылает запросы IP-адресов (то есть A и AAAA) на встроенный [DNS-сервер](../dns.md). Другие типы запросов см. в разделе `nonIPQuery` ниже.
## OutboundConfigurationObject
```json
{
"network": "tcp",
"address": "1.1.1.1",
"port": 53,
"nonIPQuery": "drop",
"blockTypes": []
}
```
> `network`: "tcp" | "udp"
Изменяет транспортный протокол DNS-трафика. Допустимые значения: `"tcp"` и `"udp"`. Если не указано, используется исходный транспортный протокол.
> `address`: address
Изменяет адрес DNS-сервера. Если не указано, используется адрес, указанный в источнике.
> `port`: number
Изменяет порт DNS-сервера. Если не указано, используется порт, указанный в источнике.
> `nonIPQuery`: string
Управляет запросами, не относящимися к IP-адресам (не A и AAAA). `"drop"` — отклонять, `"skip"` — не обрабатывать встроенным DNS-сервером, а пересылать на целевой сервер. Значение по умолчанию — `"drop"`.
> `blockTypes`: array
Массив целых чисел, блокирующий типы запросов, указанные в массиве. Например, `"blockTypes":[65,28]` блокирует запросы типа 65 (HTTPS) и 28 (AAAA).
Поскольку `nonIPQuery` по умолчанию отклоняет все запросы, не относящиеся к A и AAAA, необходимо установить для него значение `skip`, чтобы этот параметр заработал. Конечно, можно и не менять, а использовать его только для блокировки запросов A или AAAA, чтобы блокировать запросы IPv4/IPv6, но это крайне не рекомендуется. Рекомендуется настроить соответствующие параметры в `queryStrategy` встроенного DNS-сервера.
## Примеры конфигурации DNS <Badge text="В РАЗРАБОТКЕ" type="warning"/>