Файл конфигурации
See file config.dist.yml for a full example of a YAML configuration file with comments.
dns
Объект dns настраивает поведение DNS-сервера. Он обладает следующими свойствами:
cache
Объект cache настраивает кеширование результатов запросов к DNS. Он обладает следующими свойствами:
-
enabled: следует ли кешировать результаты DNS.Пример:
true -
size: максимальный размер кеша результатов DNS в виде удобочитаемых данных. Он должен быть больше нуля, еслиenabledравноtrue.Пример:
128 МБ -
client_size: максимальный размер кеша результатов DNS для каждого настроенного адреса клиента или подсети в виде удобочитаемых данных. Он должен быть больше нуля, еслиenabledравноtrue.Пример:
4 МБ
server
Объект server настраивает обработку входящих запросов. Он обладает следующими свойствами:
-
bind_retry: настройка механизма повторных попыток привязки к прослушиваемым адресам. Она нужна, когда сервер запускается доготовности сети, адреса ещё недоступны, как на некоторых версиях Windows при установке в качестве системного сервиса.noteЭтот объект доступен начиная с версии 0.0.3.
Он обладает следующими свойствами:
-
enabled: указывает, включена ли повторная попытка привязки или нет.Пример:
true -
'interval': интервал между повторными попытками в виде удобочитаемой продолжительности.
Example:
1s -
count: Максимальное количество попыток после первой неудачи. То есть, если значение переменнойcountравно 4, общее число попыток будет равно пяти.Пример:
4
-
-
listen_addresses: набор адресов с портами для прослушивания.Пример свойства:
'listen_addresses':- address: '127.0.0.1:53'- address: '[::1]:53' -
pending_requests: конфигурация для обработки дублирующихся одновременных запросов, используемая для смягчения атак отравления кеша.noteЭтот объект доступен начиная с версии 0.0.4.
-
enabled: если значение равно true, сервер будет выполнять только один запрос для каждого уникального вопроса. По умолчанию значение равно true.Пример:
true
-
bootstrap
Объект bootstrap настраивает разрешение адресов серверов upstream. Он обладает следующими свойствами:
-
серверы: список серверов для разрешения имён хостов upstream-серверов.Пример свойства:
'servers':- address: '8.8.8.8:53'- address: '192.168.1.1:53' -
timeout: время ожидания для bootstrap DNS-запросов.Пример:
2 с
upstream
Объект upstream настраивает фактическое разрешение запросов. Он обладает следующими свойствами:
-
groups: набор upstream-серверов, связанных с именем группы. Он обладает следующими свойствами:-
address: адрес upstream-сервера.Пример:
'8.8.8.8:53' -
match: список критериев для сопоставления запроса. Каждая запись может содержать следующие свойства:-
question_domain: домен или суффикс домена, для разрешения которого должен использоваться набор upstream-серверов.Пример:
'mycompany.local' -
client: адрес клиента или подсеть адресов клиента, с которых набор upstream-серверов должен разрешать запросы. В нём не должно быть значащих битов за пределами маски подсети.Пример:
'192.0.2.0/24'
noteСвойства, указанные в одной записи, объединяются с помощью логического AND. Записи объединяются логическим OR.
Пример свойства:
'match':- question_domain: 'mycompany.local'client: '192.168.1.0/24'- question_domain: 'mycompany.external'- client: '1.2.3.4' -
infogroupsдолжно содержать как минимум одну запись с именемdefaultи, опционально, одну запись с именемprivate, у обеих записей не должно быть свойстваmatch.Группа
defaultбудет использоваться, если нет совпадений среди других групп. Группаprivateбудет использоваться для разрешения PTR-запросов для частных IP-адресов. На такие запросы будет получен ответNXDOMAIN, если не определена группаprivate. -
-
timeout: время ожидания для upstream DNS-запросов.Пример:
2 с
fallback
Объект fallback настраивает поведение DNS-сервера в случае сбоя. Он обладает следующими свойствами:
-
servers: список серверов, которые будут использоваться после того, как фактический upstream не смог ответить.Пример свойства:
'servers':- address: 'tls://94.140.14.140' -
timeout: время ожидания для fallback DNS-запросов.Пример:
2 с
debug
Объект debug настраивает функции отладки. Он обладает следующими свойствами:
pprof
Объект pprof настраивает HTTP-обработчики pprof. Он обладает следующими свойствами:
-
port: порт для прослушивания отладочных HTTP-запросов на localhost.Пример:
6060 -
enabled: включено или нет профилирование отладки.Пример:
true
log
Объект log настраивает ведение журнала. Он обладает следующими свойствами:
-
'output': куда записываются логи.
noteЗаписываются в системный журнал в текстовом формате (см. ниже) и используют системную временную метку.
Возможные значения:
-
syslogозначает, что используется системный журнал, специфичный для конкретной платформы: syslog для Linux и Event Log для Windows. -
stdoutдля стандартного потока вывода. -
stderrдля стандартного потока ошибок. -
Абсолютный путь к файлу журнала.
Пример:
/home/user/logsПример:
C:\Users\user\logs.txtПример:
syslog -
-
format: определяет формат записей журнала.Возможные значения:
-
default: простой формат. Пример:INFO service started prefix=program addr=127.0.0.1:53 -
'json': структурированный формат JSON. Пример:
{"level":"INFO","msg":"service started","prefix":"program","addr":"127.0.0.1:53"} -
jsonhybrid: то же, чтоjson, но с ограниченным количеством полей. Пример:{"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"} -
text: структурированный текстовый формат. Пример:level=INFO msg="service started" prefix=program addr=127.0.0.1:53
Пример:
default -
-
timestamp: указывает, включать ли временную метку в записях журнала.Пример:
false -
verbose: указывает, должен ли журнал быть более информативным.Пример:
false