Arquivo de configuração
Veja o arquivo config.dist.yml para um exemplo completo de um arquivo de configuração YAML com comentários.
dns
O objeto dns configura o comportamento do servidor DNS. Ele tem as seguintes propriedades:
cache
O objeto cache configura o cache dos resultados de inquérito de DNS. Ele tem as seguintes propriedades:
enabled: Se os resultados de DNS devem ser armazenados em cache ou não.Exemplo:
truesize: O tamanho máximo do cache de resultados de DNS em tamanho de dados legível por humanos. Deve ser maior que zero seenabledfortrue.Exemplo:
128 MBclient_size: O tamanho máximo do cache de resultados de DNS para cada endereço de cliente configurado ou sub-rede em tamanho de dados legível por humanos. Deve ser maior que zero seenabledfortrue.Exemplo:
4 MB
server
O objeto server configura o atendimento de solicitações recebidas. Ele tem as seguintes propriedades:
bind_retry: A configuração do mecanismo de nova tentativa para vincular aos endereços de escuta. Isso é útil se o servidor for iniciado antes que a rede esteja pronta e os endereços ainda não estejam disponíveis, como em algumas edições do Windows quando instalado como um serviço do sistema.noteEsse objeto está disponível desde v0.0.3.
Ele tem as seguintes propriedades:
enabled: Se a nova tentativa de vincular está ativada ou não.Exemplo:
trueinterval: O intervalo entre novas tentativas, representado como uma duração legível para humanos.Exemplo:
1scount: O número máximo de tentativas após a primeira falha. Ou seja, secountfor4, o número total de tentativas será cinco.Exemplo:
4
listen_addresses: O conjunto de endereços com portas para escutar.Exemplo de propriedade:
'listen_addresses':
- address: '127.0.0.1:53'
- address: '[::1]:53'pending_requests: Configuração para lidar com solicitações simultâneas duplicadas, usada para mitigar ataques de envenenamento de cache.noteEsse objeto está disponível desde v0.0.4.
enabled: Se true, o servidor realizará apenas uma única solicitação para cada pergunta exclusiva. O valor padrão é true.Exemplo:
true
bootstrap
O objeto bootstrap configura a resolução dos endereços de servidores upstream. Ele tem as seguintes propriedades:
servers: A lista de servidores para resolver os nomes dos servidores upstream.Exemplo de propriedade:
'servers':
- address: '8.8.8.8:53'
- address: '192.168.1.1:53'timeout: O tempo de espera para as solicitações de DNS bootstrap em uma duração legível por humanos.Exemplo:
2 s
upstream
O objeto upstream configura a resolução real das solicitações. Ele tem as seguintes propriedades:
groups: O conjunto de servidores upstream identificados pelo nome do grupo. Ele tem as seguintes propriedades:address: O endereço do servidor upstream.Exemplo:
'8.8.8.8:53'match: A lista de critérios para combinar a solicitação. Cada entrada pode conter as seguintes propriedades:question_domain: O domínio ou um sufixo do domínio que o conjunto de servidores upstream deve usar para resolver.Exemplo:
'mycompany.local'client: O endereço do cliente ou uma sub-rede do endereço do cliente a partir do qual o conjunto de servidores upstream deve resolver solicitações. Deve não ter bits significativos fora da máscara de sub-rede.Exemplo:
'192.0.2.0/24'
noteAs propriedades especificadas dentro de uma única entrada são combinadas com um AND lógico. As entradas são combinadas com um OR lógico.
Exemplo de propriedade:
'match':
- question_domain: 'mycompany.local'
client: '192.168.1.0/24'
- question_domain: 'mycompany.external'
- client: '1.2.3.4'
infogroupsdeve conter pelo menos uma entrada chamadadefault, e opcionalmente uma entrada única chamadaprivate, ambas não devem ter a propriedadematch.O grupo
defaultserá usado quando não houver correspondências entre outros grupos. O grupoprivateserá usado para resolver as solicitações PTR para os endereços IP privados. Essas consultas serão respondidas comNXDOMAINse nenhum grupoprivateestiver definido.timeout: O tempo de espera para as solicitações de DNS upstream em uma duração legível por humanos.Exemplo:
2s
fallback
O objeto fallback configura o comportamento do servidor DNS em caso de falha. Ele tem as seguintes propriedades:
servers: A lista de servidores a serem usados após o upstream real não responder.Exemplo de propriedade:
'servers':
- address: 'tls://94.140.14.140'timeout: O tempo de espera para as solicitações de DNS de recuo em uma duração legível por humanos.Exemplo:
2s
debug
O objeto debug configura os recursos de depuração. Ele tem as seguintes propriedades:
pprof
O objeto pprof configura os manipuladores HTTP pprof. Ele tem as seguintes propriedades:
port: A porta para escutar solicitações HTTP de depuração em localhost.Exemplo:
6060enabled: Se a depuração do perfil está ativada ou não.Exemplo:
true
log
O objeto log configura o registro. Ele tem as seguintes propriedades:
output: A saída para a qual os registros são escritos.noteAs entradas de registro escritas no registro do sistema estão no formato
text(veja abaixo) e usam a data/hora do sistema.Valores possíveis:
syslogsignifica que o log do sistema específico da plataforma é usado, que é syslog para Linux e o Log de Eventos para Windows.stdoutpara o fluxo de saída padrão.stderrpara o fluxo de erros padrão.Caminho absoluto para o arquivo de log.
Exemplo:
/home/user/logsExemplo:
C:\Users\user\logs.txtExemplo:
syslogformat: Especifica o formato das entradas de log.Valores possíveis:
default: Um formato simples. Exemplo:Serviço INFO iniciado prefix=program addr=127.0.0.1:53json: Um formato JSON estruturado. Exemplo:{"level":"INFO","msg":"serviço iniciado","prefix":"program","addr":"127.0.0.1:53"}jsonhybrid: Idêntico ajson, mas com um número limitado de campos. Exemplo:{"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"}text: Um formato de texto estruturado. Exemplo:level=INFO msg="service started" prefix=program addr=127.0.0.1:53
Exemplo:
defaulttimestamp: Especifica se deve incluir um carimbo de data/hora nas entradas de log.Exemplo:
falseverbose: Especifica se o log deve ser mais informativo.Exemplo:
false