File di configurazione
Vedi il file config.dist.yml per un esempio completo di un file di configurazione YAML con commenti.
dns
L'oggetto dns configura il comportamento del server DNS. Ha le seguenti proprietà:
cache
L'oggetto cache configura la memorizzazione nella cache dei risultati delle richieste DNS. Ha le seguenti proprietà:
enabled: se i risultati DNS devono essere memorizzati nella cache.Esempio:
truesize: la dimensione massima della cache dei risultati DNS come dimensione dei dati leggibile dall'uomo. Deve essere maggiore di zero seenabledètrue.Esempio:
128 MBclient_size: la dimensione massima della cache dei risultati DNS per ciascun indirizzo o sottorete del client configurato, espressa come dimensione dei dati leggibile dall'uomo. Deve essere maggiore di zero seenabledètrue.Esempio:
4 MB
server
L'oggetto server configura la gestione delle richieste in arrivo. Ha le seguenti proprietà:
bind_retry: La configurazione del meccanismo di ripetizione per l'assegnazione agli indirizzi di ascolto. Questo è utile se il server è avviato prima che la rete sia pronta e gli indirizzi non siano ancora disponibili, come in alcune edizioni di Windows quando installato come servizio di sistema.noteQuesto oggetto è disponibile da v0.0.3.
Ha le seguenti proprietà:
enabled: Se il ripristino del legame è abilitato o meno.Esempio:
trueinterval: L'intervallo tra i tentativi come durata leggibile dall'uomo.Esempio:
1scount: Numero massimo di tentativi dopo il primo errore. Cioè, secountè4, il numero totale di tentativi sarà cinque.Esempio:
4
listen_addresses: l'insieme degli indirizzi con le porte dalle quali ricevere.Esempio di proprietà:
'listen_addresses':
- indirizzo: '127.0.0.1:53'
- indirizzo: '[::1]:53'pending_requests: configurazione per la gestione di richieste simultanee duplicate usata per mitigare gli attacchi di danneggiamento della memoria temporanea.noteQuesto oggetto è disponibile da v0.0.4.
enabled: se è impostato come true, il server eseguirà una sola richiesta per ogni domanda univoca. L'impostazione prescelta è true.Esempio:
true
bootstrap
L'oggetto bootstrap configura la risoluzione degli indirizzi del server upstream. Ha le seguenti proprietà:
servers: l'elenco dei server per risolvere i nomi host dei server upstream.Esempio di proprietà:
'servers':
- address: '8.8.8.8:53'
- address: '192.168.1.1:53'timeout: il tempo limite per le richieste DNS bootstrap, espresso in una durata leggibile dall'uomo.Esempio:
2 s
upstream
L'oggetto upstream configura la risoluzione effettiva delle richieste. Ha le seguenti proprietà:
groups: l'insieme dei server upstream identificati dal nome del gruppo. Ha le seguenti proprietà:address: Indirizzo del server upstream.Esempio:
'8.8.8.8:53'match: l'elenco dei criteri con cui confrontare la richiesta. Ogni voce può contenere le seguenti proprietà:question_domain: il dominio o un suffisso del dominio che il set di server upstream deve usare per risolvere.Esempio:
'mycompany.local'client: l'indirizzo del client o una sottorete dell'indirizzo del client da cui il set di server upstream dovrebbe risolvere le richieste. Non deve avere bit significativi al di fuori della maschera di sottorete.Esempio: ``192.0.2.0/24'`
noteLe proprietà specificate all'interno di una singola voce vengono combinate con un AND logico. Le voci vengono combinate con un OR logico.
Esempio di proprietà:
'match':
- question_domain: 'mycompany.local'
client: '192.168.1.0/24'
- question_domain: 'mycompany.external'
- client: '1.2.3.4'
infogroupsdovrebbe contenere almeno un'unica voce chiamatadefault, e facoltativamente un'unica voce chiamataprivate, entrambe non dovrebbero avere la proprietàmatch.Il gruppo
defaultsarà usato quando non ci sono corrispondenze tra gli altri gruppi. Il gruppoprivatesarà utilizzato per risolvere le richieste PTR per gli indirizzi IP privati. Tali query riceveranno una rispostaNXDOMAINse non è definito alcun gruppoprivate.timeout: il tempo limite per le richieste DNS upstream, espresso in una durata leggibile dall'uomo.Esempio:
2 s
fallback
L'oggetto fallback configura il comportamento del server DNS in caso di errore. Ha le seguenti proprietà:
servers: La lista dei server da utilizzare dopo che il upstream attuale ha fallito nel rispondere.Esempio di proprietà:
'servers':
- address: 'tls://94.140.14.140'timeout: il tempo limite per le richieste DNS fallback, espresso in una durata leggibile dall'uomo.Esempio:
2 s
debug
L'oggetto debug configura le funzionalità di debug. Ha le seguenti proprietà:
pprof
L'oggetto pprof configura i gestori HTTP pprof. Ha le seguenti proprietà:
port: La porta su cui ascoltare le richieste HTTP di debug su localhost.Esempio:
6060enabled: Se il profiling di debug è attivo o meno.Esempio:
true
log
L'oggetto log configura la registrazione. Ha le seguenti proprietà:
output: L'output a cui vengono scritti i registri.noteLe voci di registro scritte nel registro di sistema sono in formato
text(vedi sotto) e utilizzano il timestamp di sistema.Valori possibili:
syslogsignifica che viene utilizzato il registro di sistema specifico per la piattaforma, che è syslog per Linux e Event Log per Windows.stdoutper il flusso di output standard.stderrper il flusso di errore standard.Percorso assoluto del file di registro.
Esempio:
/home/user/logsEsempio:
C:\Users\user\logs.txtEsempio:
syslogformat: Specifica il formato delle voci di registro.Valori possibili:
default: Un formato semplice. Esempio:INFO service started prefix=program addr=127.0.0.1:53json: Un formato JSON strutturato. Esempio:{"level":"INFO","msg":"service started","prefix":"program","addr":"127.0.0.1:53"}jsonhybrid: Stesso dijsonma con un numero limitato di campi. Esempio:{"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"}text: Un formato di testo strutturato. Esempio:level=INFO msg="service started" prefix=program addr=127.0.0.1:53
Esempio:
defaulttimestamp: Specifica se includere un timestamp nelle voci di registro.Esempio:
falseverbose: Specifica se il registro deve essere più informativo.Esempio:
false