Zum Hauptinhalt springen

Konfigurationsdatei

In der Datei config.dist.yml finden Sie ein vollständiges Beispiel für eine YAML-Konfigurationsdatei mit Kommentaren.

dns

Das Objekt dns konfiguriert das Verhalten des DNS-Servers. Es hat folgende Eigenschaften:

cache

Das Objekt cache konfiguriert das Zwischenspeichern der Ergebnisse von DNS-Abfragen. Es hat folgende Eigenschaften:

  • enabled: Legt fest, ob die DNS-Ergebnisse zwischengespeichert werden sollen oder nicht.

    Beispiel: true

  • size: Die maximale Größe des DNS-Ergebnis-Caches als für den Nutzer erfassbare Datengröße. Sie muss größer als Null sein, wenn enabled auf true steht.

    Beispiel: 128 MB

  • client_size: Die maximale Größe des DNS-Ergebnis-Caches für die Adresse oder das Subnetz eines jeden konfigurierten Clients in Form von für den Nutzer erfassbaren Daten. Sie muss größer als Null sein, wenn enabled auf true steht.

    Beispiel: 4 MB

server

Das Objekt server konfiguriert die Verarbeitung der eingehenden Anfragen. Es hat folgende Eigenschaften:

  • listen_addresses: Die Menge der Adressen mit den zu überwachenden Ports.

    Eigenschaftsbeispiel:

    'listen_addresses':
    - address: '127.0.0.1:53'
    - address: '[::1]:53'

bootstrap

Das Objekt bootstrap konfiguriert die Auflösung von upstream Serveradressen. Es hat folgende Eigenschaften:

  • servers: Die Liste der Server, die die Hostnamen der Upstream-Server auflösen.

    Eigenschaftsbeispiel:

    'servers':
    - address: '8.8.8.8:53'
    - address: '192.168.1.1:53'
  • timeout: Die Zeitüberschreitung für Bootstrap-DNS-Anfragen in einer für den Nutzer erfassbaren Dauer.

    Beispiel: 2 s

upstream

Das Objekt upstream konfiguriert die eigentliche Auflösung von Anfragen. Es hat folgende Eigenschaften:

  • groups: Die Gruppe von Upstream-Servern, die durch den Gruppennamen gekennzeichnet sind. Es enthält die folgenden Felder:

    • address: Die Adresse des Upstream-Servers.

      Beispiel: '8.8.8.8:53'

    • match: Die Liste der Kriterien, mit denen die Anfrage abgeglichen werden soll. Jeder Eintrag kann die folgenden Eigenschaften enthalten:

      • question_domain: Die Domain oder ein Suffix der Domain, die von der Gruppe der Upstream-Server aufgelöst werden soll.

        Beispiel: 'mycompany.local'

      • client: Die Adresse des Clients oder ein Teilnetz der Adresse des Clients, von dem aus die Gruppe der Upstream-Server Anfragen auflösen soll. Sie darf keine signifikanten Bits außerhalb der Subnetzmaske haben.

        Beispiel: '192.0.2.0/24'

      note

      Die in einem einzigen Eintrag angegebenen Eigenschaften werden mit einem logischen UND verknüpft. Die Eingaben werden mit einem logischen ODER kombiniert.

      Eigenschaftsbeispiel:

      'match':
      - question_domain: 'mycompany.local'
      client: '192.168.1.0/24'
      - question_domain: 'mycompany.external'
      - client: '1.2.3.4'
    info

    groups sollte mindestens einen einzelnen Eintrag namens default und optional einen einzelnen Eintrag namens private enthalten, beide sollten keine match Eigenschaft haben.

    Die Gruppe default wird verwendet, wenn es keine Übereinstimmung mit anderen Gruppen gibt. Die Gruppe private wird verwendet, um die PTR-Anfragen für die privaten IP-Adressen aufzulösen. Solche Abfragen werden mit NXDOMAIN beantwortet, wenn keine Gruppe private definiert ist.

  • timeout: Die Zeitüberschreitung für vorgelagerte DNS-Anfragen in einer für den Nutzer erfassbaren Dauer.

    Beispiel: 2s

fallback

Das Objekt fallback konfiguriert das Verhalten des DNS-Servers im Falle eines Fehlers. Es hat folgende Eigenschaften:

  • server: Die Liste der Server, die verwendet werden sollen, nachdem der eigentliche upstream nicht geantwortet hat.

    Eigenschaftsbeispiel:

    'servers':
    - address: 'tls://94.140.14.140'
  • timeout: Die Zeitüberschreitung für Fallback-DNS-Anfragen in einer für den Nutzer erfassbaren Dauer.

    Beispiel: 2s

debug

Das Objekt debug konfiguriert die Debugging-Funktionen. Es hat folgende Eigenschaften:

pprof

Das Objekt pprof konfiguriert die pprof HTTP-Handler. Es hat folgende Eigenschaften:

  • port: Der Port, der auf Debug-HTTP-Anfragen auf localhost überwacht werden soll.

    Beispiel: 6060

  • enabled: Gibt an, ob die Debug-Profilerstellung aktiviert ist oder nicht.

    Beispiel: true

log

Das Objekt log konfiguriert die Protokollierung. Es hat folgende Eigenschaften:

  • output: Die Ausgabe, in die die Protokolle geschrieben werden.

    note

    Protokolleinträge, die in das Systemprotokoll geschrieben werden, haben das Format text (siehe unten) und verwenden den Zeitstempel des Systems.

    Mögliche Werte:

    • syslog bedeutet, dass das plattformspezifische Systemprotokoll verwendet wird, d. h. „syslog“ für Linux und „Ereignisprotokoll“ für Windows.

    • stdout für Standard-Ausgabe-Stream.

    • stderr für den Standard-Fehler-Stream.

    • Absoluter Pfad zur Protokolldatei.

    Beispiel: /home/user/logs

    Beispiel: C:\Users\user\logs.txt

    Beispiel: syslog

  • format: Gibt das Format der Protokolleinträge an.

    Mögliche Werte:

    • default: Ein einfaches Format. Beispiel:

      INFO service started prefix=program addr=127.0.0.1:53
    • json: Ein strukturiertes JSON-Format. Beispiel:

      {"level":"INFO","msg":"service started","prefix":"program","addr":"127.0.0.1:53"}
    • jsonhybrid: Identisch mit json, aber mit einer begrenzten Anzahl von Feldern. Beispiel:

      {"level":"INFO","msg":"service started, attrs: prefix=program addr=127.0.0.1:53"}
    • text: Ein strukturiertes Textformat. Beispiel:

      level=INFO msg="service started" prefix=program addr=127.0.0.1:53

    Standard: default

  • timestamp: Gibt an, ob ein Zeitstempel in die Protokolleinträge aufgenommen werden soll.

    Beispiel: false

  • verbose: Gibt an, ob das Protokoll mehr Informationen enthalten soll.

    Beispiel: false