Archivo de configuración
Consulta el archivo config.dist.yml para un ejemplo completo de un archivo de configuración YAML con comentarios.
dns
El objeto dns configura el comportamiento del servidor DNS. Tiene las siguientes propiedades:
cache
El objeto cache configura el almacenamiento en caché de los resultados de las consultas DNS. Tiene las siguientes propiedades:
enabled: Si los resultados DNS deben ser almacenados en caché o no.Ejemplo:
truesize: El tamaño máximo de la caché de resultados DNS como tamaño de datos legible por humanos. Debe ser mayor que cero sienabledestrue.Ejemplo:
128 MBclient_size: El tamaño máximo de la caché de resultados DNS para la dirección de cada cliente configurado o subred como tamaño de datos legible por humanos. Debe ser mayor que cero sienabledestrue.Ejemplo:
4 MB
server
El objeto server configura el manejo de las solicitudes entrantes. Tiene las siguientes propiedades:
reintentar _ enlace: La configuración del mecanismo de reintento para enlazar las direcciones enlistadas. Esto resulta útil si el servidor se inicia antes de que la red esté lista y las direcciones aún no estén disponibles, como ocurre en algunas ediciones de Windows cuando se instala como servicio del sistema.noteEste objeto está disponible desde v0.0.3.
Tiene las siguientes propiedades:
habilitado: Si el reintento de enlace está habilitado o no.Ejemplo:
trueinterval: El intervalo entre reintentos, expresado como una duración legible para humanos.Ejemplo:
1scount: El número máximo de intentos después del primer fallo. Es decir, si elrecuentoes4el número total de intentos será de cinco.Ejemplo:
4
listen_addresses: El conjunto de direcciones con puertos para escuchar.Ejemplo de propiedad:
'listen_addresses':
- address: '127.0.0.1:53'
- address: '[::1]:53'pending_requests: Configuración para gestionar peticiones simultáneas duplicadas, utilizada para mitigar ataques de envenenamiento de cache.noteEste objeto está disponible desde v0.0.4.
enabled: Si es true, el servidor solo realizará una única Petición para cada pregunta única. El valor predeterminado es verdadero.Ejemplo:
true
bootstrap
El objeto bootstrap configura la resolución de las direcciones de los servidores upstream. Tiene las siguientes propiedades:
servers: La lista de servidores para resolver los nombres de los servidores upstream.Ejemplo de propiedad:
'servers':
- address: '8.8.8.8:53'
- address: '192.168.1.1:53'timeout: El tiempo de espera para las peticiones DNS bootstrap como duración legible por humanos.Ejemplo:
2s
upstream
El objeto upstream configura la resolución real de las solicitudes. Tiene las siguientes propiedades:
groups: El conjunto de servidores upstream con clave por el nombre del grupo. Tiene las siguientes propiedades:address: La dirección del servidor upstream.Ejemplo:
'8.8.8.8:53'match: La lista de criterios para hacer coincidir la solicitud. Cada entrada puede contener las siguientes propiedades:question_domain: El dominio o un sufijo del dominio que debe ser usado para resolver por el conjunto de servidores upstream.Ejemplo:
'mycompany.local'client: La dirección del cliente o una subnet de la dirección del cliente desde donde el conjunto de servidores upstream debería resolver solicitudes. No debe tener bits significativos fuera de la máscara de subred.Ejemplo:
'192.0.2.0/24'
noteLas propiedades especificadas dentro de una única entrada se combinan con un AND lógico. Las entradas se combinan con un OR lógico.
Ejemplo de propiedad:
'match':
- question_domain: 'mycompany.local'
client: '192.168.1.0/24'
- question_domain: 'mycompany.external'
- client: '1.2.3.4'
infogroupsdebe contener al menos una única entrada llamadadefault, y opcionalmente una única entrada llamadaprivate, ambas no deben tener la propiedadmatch.El grupo
defaultse usará cuando no haya coincidencias entre otros grupos. El grupoprivatese usará para resolver las solicitudes PTR para las direcciones IP privadas. Tales consultas serán respondidas conNXDOMAINsi no se define un grupoprivate.timeout: El tiempo de espera para las solicitudes DNS upstream como una duración legible por humanos.Ejemplo:
2s
fallback
El objeto fallback configura el comportamiento del servidor DNS en caso de fallo. Tiene las siguientes propiedades:
servers: La lista de servidores que se usarán después de que el upstream real no haya respondido.Ejemplo de propiedad:
'servers':
- address: 'tls://94.140.14.140'timeout: El tiempo de espera para las solicitudes DNS de fallback como una duración legible por humanos.Ejemplo:
2s
debug
El objeto debug configura las características de depuración. Tiene las siguientes propiedades:
pprof
El objeto pprof configura los manejadores HTTP pprof. Tiene las siguientes propiedades:
port: El puerto en el que escuchar para solicitudes HTTP de depuración en localhost.Ejemplo:
6060enabled: Si la depuración del perfil está habilitada o no.Ejemplo:
true
log
El objeto log configura el registro. Tiene las siguientes propiedades:
output: La salida a la que se escriben los registros.noteLas entradas de registro escritas en el registro del sistema están en formato
text(ver abajo) y utilizan la marca de tiempo del sistema.Valores posibles:
syslogsignifica que se usa el registro del sistema específico de la plataforma, que es syslog para Linux y Registro de eventos para Windows.stdoutpara el flujo de salida estándar.stderrpara el flujo de error estándar.Ruta absoluta al archivo de registro.
Ejemplo:
/home/user/logsEjemplo:
C:\Users\user\logs.txtEjemplo:
syslogformat: Especifica el formato de las entradas de registro.Valores posibles:
default: Un formato simple. Ejemplo:INFO service started prefix=program addr=127.0.0.1:53json: Un formato JSON estructurado. Ejemplo:{"level":"INFO","msg":"servicio iniciado","prefix":"program","addr":"127.0.0.1:53"}jsonhybrid: Igual quejsonpero con un número limitado de campos. Ejemplo:{"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"}text: Un formato de texto estructurado. Ejemplo:level=INFO msg="service started" prefix=program addr=127.0.0.1:53
Ejemplo:
defaulttimestamp: Especifica si se debe incluir una marca de tiempo en las entradas de registro.Ejemplo:
falseverbose: Especifica si el registro debe ser más informativo.Ejemplo:
false