Provided by: yadifa_3.0.2-3_amd64 bug

NAME

       yadifad.conf - configuration file for yadifad(8).

SYNOPSIS

       ${SYSCONFDIR}/yadifa/yadifad.conf

DESCRIPTION

       The  configuration  of  yadifad  is  consistent  in  a text file that can optionally include others.  The
       general  structure  is  a  sequence  of  containers:  a  sequence  of  lines  of  text  starting  with  a
       <container-name>  and  ending  with  a  </container-name>.  Each line between these delimitters is in the
       form: variable-name value.  The format of the value is determined by the type of the variable.

   TYPES
       There are 15 types:

       ACL
               A list of ACL descriptors. User-defined ACLs are found in the ACL section. The "any"  and  "none"
              descriptors are always defined. Elements of the list are separated by a "," or a ";".

       DNSSECTYPE
               A  DNSSEC  type  name.  It can be a DNSSEC-enabled value ("nsec", "nsec3" or "nsec3-optout") or a
              DNSSEC-disabled value ("none", "no", "off" or "0").

       ENUM
               A word from a specified set.

       FLAG
               A boolean value. It can be true ("1", "enable", "enabled", "on", "true", "yes")  or  false  ("0",
              "disable", "disabled", "off", "false", "no").

       FQDN
               A fully-qualified domain name text string. e.g.: www.eurid.eu.

       GID
               Group ID. (Can be a number or a name)

       HOST(S)
               A (list of) host(s). A host is defined by an IP (v4 or v6) and can be followed by the word `port'
              and a port number. Elements of the list are separated by a `,' or a `;'.

       INTEGER / INT
               A base-ten integer.

       NETMOD
               A word or integer that identifies the network model:
              single or 0 Each working thread reads a single message, processes its answer and replies to it.
              buffered or 1 Working threads are working by couple. One reads a single message and queues it, one
              de-queues it, processes its answer and replies to it.
              multi  or  2 Each working thread reads a multiple messages, processes their answers and replies to
              them.

       PATH / FILE
               A file or directory path. i.e.: "/var/zones".

       STRING / STR
               A text string. Double quotes can be used but are not mandatory. Without quotes the string will be
              taken from the first non-blank character to the last non-blank character.

       HEXSTR
               A hexadecimal even-length text string.

       RELDATE
               A cron-like date to be matched, relative to  another.  The  columns  are  minutes  [0;59],  hours
              [0;23],  days  [0;31], months [1;12], weekdays [mon,tue,wed,thu,fri,sat,sun] and week-of-the-month
              [0;4]. Multiple values can be set in a column cell using ',' as a separator. The '*' character can
              be used to set all possible values of its column cell.

       RELTIME
               A time offset relative to another. It's written as +integer[unit-character]  (e.g.:  +24h)  where
              the unit character can be seconds, minutes, hours, days or weeks.

       SECONDS
               A base-ten integer.

       HOURS
               A base-ten integer.

       DAYS
               A base-ten integer.

       UID
               User ID. (Can be a number or a name)

   CONTAINERS
       The configuration of yadifad has several containers:

       <main>
               General container

       <key>
               TSIG keys

       <acl>
               Access lists

       <nsid>
               NameServer IDentifier

       <rrl>
               Response Rate Limiting directives

       <zone>
               Description of the domain name in specific attributes.

       <channels>
               Description of the logger outputs.

       <dnssec-policy>
               Description of dnssec policies.

       <key-suite>
               Description of the key-suites needed if 'dnssec policies' are used.

       <key-roll>
               Description of the key-rolls needed if 'dnssec policies' are used.

       <key-template>
               Description of the key-templates needed if 'dnssec policies' are used.

       <denial>
               Description of 'denial', this can be used in certain 'dnssec policies'.

       The configuration supports included files.
       example: include /etc/yadifa/conf.d/local.conf

       The configuration files can be nested.

       The configuration consists of:

       *      Container, which starts with <container name> and ends with </container name>

       *      Variable name

       *      1 or 2 arguments

       *      Arguments can contain 1 or more comma separated values.

   STANDARD SECTIONS
       <main>
               General container, contains all the configuration parameters needed to start up yadifad.

              allow-control ACL
                      default: none

                     Default server-control access control list. Only the sources matching the ACL are accepted.

              allow-notify ACL
                      default: any

                     Default notify access control list. Only the servers matching the ACL will be handled.

              allow-query ACL
                      default: any

                     Default query access control list. Only the clients matching the ACL will be replied to.

              allow-transfer ACL
                      default: none

                     Default  transfer access control list. Only the clients matching the ACL will be allowed to
                     transfer a zone (axfr/ixfr).

              allow-update ACL
                      default: none

                     Default update access control list. Only the clients matching the ACL will  be  allowed  to
                     update a zone.

              allow-update-forwarding ACL
                      default: none

                     Default  update-forwarding  access  control  list.  Only  the  sources matching the ACL are
                     accepted.

              answer-formerr-packets FLAG
                      default: true

                     If this flag is disabled; the server will not reply to badly formatted packets.

              axfr-compress-packets FLAG
                      default: true

                     Enables the dns packet compression of each axfr packet.

              axfr-max-packet-size INT
                      default: 4096 bytes

                     The maximum size of an axfr packet. (MIN: 512; MAX: 65535)

              axfr-max-record-by-packet INT
                      default: 0

                     The maximum number of records in each axfr packet. Older name servers can  only  handle  1.
                     Set to 0 to disable the limit. (MIN: 0; MAX: 65535)

              axfr-retry-delay SECONDS
                      default: 600

                     Number  of  seconds between each retry for the first transfer from the primary name server.
                     (MIN: 60; MAX: 86400)

              axfr-retry-jitter SECONDS
                      default: 180

                     Jitter applied to axfr-retry-delay. (MIN: 60; MAX: axfr-retry-delay)

              axfr-retry-failure-delay-multiplier INT
                      default: 5

                     Linear back-off multiplier. The multiplier times the number of failures  is  added  to  the
                     xfr-retry-delay. (MIN: 0; MAX: 86400)

              axfr-retry-failure-delay-max SECONDS
                      default: 3600

                     Maximum delay added for the back-off. (MIN: 0; MAX: 604800)

              axfr-strict-authority FLAG
                      default: yes (unless --enable-non-aa-axfr-support was used)

                     Tells yadifad to be strict with the AA flag in AXFR answers

              chroot FLAG
                      default: off

                     Enabling this flag will make the server jail itself in the chroot-path directory.

              chroot-path; chrootpath PATH
                      default: /

                     The directory used for the jail.

              cpu-count-override INT
                      default: 0

                     Overrides the detected number of logical cpus. Set to 0 for automatic. (MIN: 0; MAX: 256)

              daemon; daemonize FLAG
                      default: false

                     Enabling this flag will make the server detach from the console and work in background.

              data-path; datapath PATH
                      default: zones

                     The base path were lies the data (zone file path; journaling data; temporary files; etc.)

              do-not-listen HOSTS
                      default: -

                     An  exclusion  list of addresses to never listen to. If set, 0.0.0.0 and ::0 will always be
                     split by interface to isolate the address.

              edns0-max-size INT
                      default: 4096

                     edns0 packets size. (MIN: 512; MAX: 65535)

              gid; group GID
                      default: 0 (or root)

                     The group ID that the server will use.

              hidden-primary; hidden-master FLAG
                      default: no

                     As a hidden primary  more CPU will be used for various maintenance tasks.

              hostname-chaos; hostname STR
                      default: the host name

                     The string returned by a hostname-chaos TXT CH query.

              keys-path; keyspath PATH
                      default: zones/keys

                     The base path of the dnssec keys.

              listen HOSTS
                      default: 0.0.0.0,::0

                     The list of interfaces to listen to.

              log-files-disabled FLAG
                      default: no

                     If set, disables checking the log-path directory for existence and writing rights.

              log-path; logpath PATH
                      default: log

                     The base path where the log files are written.

              log-unprocessable FLAG
                      default: off

                     Enabling this flag will make the server log unprocessable queries.

              max-tcp-queries; max-tcp-connections INT
                      default: 16

                     The maximum number of parallel tcp queries; allowed. (MIN: 1; MAX: 255)

              network-model NETMOD
                      default: multi

                     Sets the networking model of yadifa.

              pid-file; pidfile STR
                      default: run/yadifad.pid

                     The pid file name.

              queries-log-type INT
                      default: 1

                     Query log format. (0: none; 1: yadifa format; 2: BIND format; 3: yadifa and BIND format  at
                     once)

              serverid-chaos; serverid STR
                      default: -

                     The string returned by a id.server. TXT CH query. If not set; REFUSED is answered.

              server-port; port INT
                      default: 53

                     The default dns port. (MIN: 1; MAX: 65535)

              sig-validity-interval DAYS
                      default: 30

                     The number of days for which an automatic signature is valid. (MIN: 7 days; MAX: 30 days)

              sig-validity-jitter; sig-jitter SECONDS
                      default: 3600

                     The signature expiration validity jitter in seconds (1 hour). (MIN: 0 sec; MAX: 86400 sec)

              sig-validity-regeneration HOURS
                      default: automatic

                     Signatures  expiring  in  less  than  the indicated amount of hours will be recomputed. The
                     default will be chosen by yadifa.  (MIN: 24 hours; MAX: 168 hours)

              statistics FLAG
                      default: true

                     The server will log a report line about some internal statistics.

              statistics-max-period SECONDS
                      default: 60

                     The period in seconds between two statistics log lines.  (MIN:  1  sec;  MAX:  31  *  86400
                     seconds (31 days))

              tcp-query-min-rate INT
                      default: 512 bytes/second

                     The minimum transfer rate required in a tcp connection (read and write). Slower connections
                     are closed. The units are bytes per second. (MIN: 0; MAX: 4294967295

              thread-affinity-base INT
                      default: 0

                     Sets the first CPU to set affinity for. Set it to the real CPU of a core. (MIN: 0; MAX: 3)

              thread-affinity-multiplier INT
                      default: 0

                     Sets  the  multiplier  choosing CPU to set affinity for. Allows avoiding hyperthread cores.
                     Set to 0 for automatic avoiding. (MIN: 0; MAX: 4)

              thread-count-by-address INT
                      default: -1

                     Number of independent threads used to  process  each  listening  address.  Set  to  -1  for
                     automatic. Set to 0 for single threaded. (MIN: -1; MAX: number of CPU's)

              uid; user UID
                      default: 0 (or root)

                     The user ID that the server will use.

              version-chaos; version STR
                      default: yadifa version#

                     The text to include in the version TXT CH query.

              xfr-connect-timeout SECONDS
                      default: 5

                     Timeout  for  establishing  a  connection for axfr and ixfr transfers. Set to 0 to disable.
                     (MIN: 0; MAX: 4294967295)

              xfr-path; xfrpath PATH
                      default: zones/xfr

                     The base path used for axfr and journal storage.

              zone-download-thread-count INT
                      default: 4

                     Number of independent threads used to download the zones. (MIN: 0; MAX: 255)

              zone-load-thread-count INT
                      default: 1

                     Number of independent threads used to process loading of the zones. (MIN: 0; MAX: 255)

              zone-store-thread-count INT
                      default: 1

                     Sets the number of threads used to store a zone on disk (MIN: 1, MAX: 4).

              zone-unload-thread-count INT
                      default: 1

                     Sets the number of threads used to delete a zone from memory (MIN: 1, MAX: 4).

              worker-backlog-queue-size INT
                      default: 16384

                     For network-model 1, sets the size of the backlog queue (MIN: 4096, MAX: 1048576).

       <key>
               TSIG keys

              algorithm ENUM
                      default: -

                     Mandatory. Sets the algorithm of the key.

                     Supported values are:

                        hmac-md5

                        hmac-sha1

                        hmac-sha224

                        hmac-sha256

                        hmac-sha384

                        hmac-sha512

                     (the algorithm names are case insensitive)}

              name FQDN
                      default: -

                     Mandatory. Sets the name of the key.

              secret TEXT
                      default: -

                     Mandatory. Sets the value of the key. BASE64 encoded.

       <acl>
               Access lists

       Each entry of the acl section defines a rule of access.  Each rule is a name (a single user-defined word)
       followed by a rule in the form of a list of statements. The separator can be "," or ";".  The  "any"  and
       "none"  names are reserved.  A statement tells if a source is accepted or rejected. Reject statements are
       prefixed with "!".  Statements are evaluated in the following order: first from  more  specific  to  less
       specific,  then  from reject to accept.  If a statement matches, the evaluation will stop and accordingly
       accept or reject the source.  If no statement matches, then the source is rejected.

       A statement can be either:

              *      An IPv4 or an IPv6 address followed (or not) by a mask.
                     [!]ipv4 |ipv6 [/mask]

                     For example:

                     *      internal-network 192.0.2.128/26;2001:DB8::/32

              *      The word `key' followed by the name of a TSIG key.
                     key key-name

                     For example:

                     *      slaves key public-slave;key hidden-slave

              *      An ACL statement name from the acl section. Note that negation and recursion are  forbidden
                     and duly rejected.
                     acl-name

                     For example:

                     *      who-can-ask-for-an-ixfr primary;secondaries;127.0.0.1

       <nsid>
               NameServer IDentifier

              ascii  STR
                      default: ""

                     The string can be 512 characters long.

              hex
                      default: ""

       <rrl>
               Response Rate Limiting directives

              responses-per-second  INT
                      default: 5

                     Allowed response rate.

              errors-per-second  INT
                      default: 5

                     Allowed error rate.

              slip  INT
                      default: 2

                     Random slip parameter.

              log-only  FLAG
                      default: false

                     If set to true, logs what it should do without doing it.

              ipv4-prefix-length  INT
                      default: 24

                     Mask applied to group the IPv4 clients.

              ipv6-prefix-length  INT
                      default: 56

                     Mask applied to group the IPv6 clients.

              exempt-clients  ACL
                      default: none

                     Clients matching this rule are not subject to the RRL.

              enabled  FLAG
                      default: false

                     Enables the RRL

              min-table-size  INT
                      default: 1024

                     RRL buffer minimum size

              max-table-size  INT
                      default: 16384

                     RRL buffer maximum size

              window  INT
                      default: 15

                     RRL sliding window size in seconds

       <zone>
               Description of the domain name in specific attributes.

              allow-control ACL
                      default: as main

                     Control commands control list. Only the matching sources are allowed.

              allow-notify ACL
                      default: as main

                     Notify access control list. Only the servers matching the ACL will be handled.

              allow-query ACL
                      default: as main

                     Query access control list. Only the clients matching the ACL will be replied to.

              allow-transfer ACL
                      default: as main

                     Tansfer  access control list. Only the clients matching the ACL will be allowed to transfer
                     a zone (axfr/ixfr

              allow-update ACL
                      default: as main

                     Update access control list. Only the clients matching the ACL will be allowed to  update  a
                     zone.

              allow-update-forwarding ACL
                      default: as main

                     Update forwarding control list. Only the matching sources are allowed.

              dnssec-mode; dnssec DNSSEC-TYPE
                      default: off

                     Type  of  dnssec used for the zone. As primary name sever; yadifa will try to maintain that
                     state.

              dnssec-policy STR
                      default: -

                     Sets the dnssec-policy id to be used.

              domain FQDN
                      default: -

                     Mandatory. Sets the domain of the zone (i.e.: eurid.eu).

              drop-before-load FLAG
                      default: off

                     Enabling this flag will make the server drop the zone before loading the updated zone  from
                     disk. Use this on systems constrained for RAM.

              file-name; file FILE
                      default: -

                     Sets the zone file name. Only mandatory for a primary zone.

              journal-size-kb INT
                      default: 0

                     Puts a soft limit on the size of the journal; expressed in KB. (MIN: 0; MAX: 3698688 (3GB))

              keys-path; keyspath PATH
                      default: as main

                     The base path of the dnssec keys.

              maintain-dnssec FLAG
                      default: true

                     Enabling this flag will cause the server to try and maintain rrsig records

              primaries; primary; masters; master HOSTS
                      default: -

                     Mandatory for a secondary. Sets the primary server(s). Multiple primaries are supported.

              multiprimary-retries; multimaster-retries INT
                      default: 0

                     The  number  of  times  the  primary is unreachable before switching to a different primary
                     (MIN: 0; MAX: 255)

              no-primary-updates; no-master-updates FLAG
                      default: false

                     Enabling this flag will prevent the server from probing or  downloading  changes  from  the
                     primary

              notifies; also-notify; notify HOSTS
                      default: -

                     The  list  of  servers to notify in the event of a change. Currently only used by primaries
                     when a dynamic update occurs.

              notify-auto FLAG
                      default: true

                     Enabling this flag will cause notify messages to be sent to all name servers in  the  APEX.
                     Disabling this flags causes the content of APEX to be ignored (ns Records).

              notify-retry-count INT
                      default: 5

                     Number of times yadifa tries to send a notify.  (MIN: 0; MAX: 10)

              notify-retry-period INT
                      default: 1

                     Time period in minutes between two notify attempts. (MIN: 1; MAX: 600)

              notify-retry-period-increase INT
                      default: 0

                     Increase of the time period in minutes between two notify attempts. (MIN: 0; MAX: 600)

              rrsig-nsupdate-allowed FLAG
                      default: false

                     If this flag is set the server allows one to edit RRSIG records using dynamic updates.

              sig-validity-interval DAYS
                      default: as main

                     The number of days for which an automatic signature is valid. (MIN: 7 days; MAX: 30 days)

              sig-validity-regeneration HOURS
                      default: as main

                     The  signatures  expiring  in  less  than the indicated amount of hours will be recomputed.
                     (MIN: 24 hours; MAX: 168 hours)

              sig-validity-jitter SECONDS
                      default: as main

                     The signature expiration validity jitter in seconds. (MIN: 0 sec; MAX: 86400 sec)

              true-multiprimary; true-multimaster FLAG
                      default: off

                     Enabling this flag will make the server use axfr when switching to a new primary

              type ENUM
                      default: -

                     Mandatory. Sets the type of zone : either primary/master or secondary/slave.

       <channels>
               Description of the logger outputs.

       It contains a list descriptions of user-defined outputs for the logger.  Depending on the kind of output,
       the format is different.

       The "name" is arbitrary and is used for identification in the <loggers>.
       The "stream-name" defines the output type (ie: a file name, a program output or syslog).
       The "arguments" are specific to the output type (ie: unix  file  access  rights  or  syslog  options  and
       facilities).

              *      file output stream channel-name file-name access-rights (octal).

              *      pipe  to  a  program channel-name "| shell command" channel-name "| path-to-program program
                     arguments >> append-redirect"

              *      STDOUT, STDERR output stream channel-name stdout channel-name stderr

              *      syslog channel-name syslog syslog-facility

       <loggers>
               Description of the logger outputs sources.

       Sets the output of a pre-defined logger from yadifad.

       The format of the line is: logger-name output-filter comma-separated-channel-names

       Filters are:
       DEBUG7, DEBUG6, DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, DEBUG, INFO, NOTICE, WARNING, ERR,  CRIT,  ALERT,
       EMERG

       Additionally, there are:

              *      ALL (or '*') meaning all the filters.

              *      PROD means all but the DEBUG filters.

              The defined loggers are:

              system
                      contains  low  level  messages about the system such as memory allocation, threading, IOs,
                     timers and cryptography, ...

              database
                      It contains messages about most lower-level operations in the DNS database.  ie:  journal,
                     updates, zone loading and sanitization, DNS message query resolution, ...)

              dnssec
                      contains  messages  about  lower-level  dnssec operations in the DNS database. ie: status,
                     maintenance, verification, ...

              server
                      contains  messages  about  operations  in  the  DNS  server.  ie:  start   up,   shutdown,
                     configuration, transfers, various services status (database management, network management,
                     DNS notification management, dynamic update management, resource rate limiting, ...)

              zone
                      contains  messages  about  the  loading of a zone from a source (file parsing, transferred
                     binary zone reading, ...)

              stats
                      contains the statistics of the server.

              queries
                      contains the queries on the server.  Queries can be logged with the BIND and/or  with  the
                     YADIFA format.
                     BIND format:
                     client sender-ip#port: query: fqdn class type +SETDC (listen-ip)
                     YADIFA format:
                     query [ id ] {+SETDC} fqdn class type (sender-ip#port)
                     where:

                     id     is the query message id

                     +      means the message has the Recursion Desired flag set

                     S      means the message is signed with a TSIG

                     E      means the message is EDNS

                     T      means the message was sent using TCP instead of UDP

                     D      means the message has the DNSSEC OK flag set

                     C      means the message has the Checking Disabled flag set

                     fqdn   is the queried FQDN

                     class  is the queried class

                     type   is the queried type

                     sender-ip
                            is the IP of the client that sent the query

                     port   is the port of the client that sent the query

                     listen-ip
                            is the listen network interface that received the message

                     Note  that on YADIFA any unset flag is replaced by a '-', on BIND only the '+' follows that
                     rule.

              System operators will mostly be interested in the info and above messages of queries and stats, as
              well as the error and above messages of the other loggers.

   DNSSEC-POLICY
       There are 5 sections:

       <dnssec-policy>
               The dnssec-policy section binds up to four key suites and a denial mode. It is meant to  be  used
              as  a  dnssec-policy  parameter in a zone section.  Usually two key-suite will be given: one for a
              KSK and one for a ZSK. The denial mode can be either 'nsec' either the name of a denial section.

              id STR
                      default: -

                     id of the dnssec-policy section.

              description STR
                      default: -

                     Description for the dnssec-policy section.

              key-suite STR
                      default: -

                     id of the key-suite to be used. Usually both a KSK and a ZSK suites are given.

              denial STR
                      default: nsec

                     id of the denial to be used for nsec3 or the argument 'nsec' to use nsec.

       <key-suite>
               The key-suite section is used by dnssec policies and is meant to be referenced by a dnssec-policy
              section.  A key-suite links a key definition (key-template) with a deployment calendar (key-roll).

              id STR
                      default: -

                     id of the key-suite section.

              key-template STR
                      default: -

                     id of the key-template to be used.

              key-roll STR
                      default: -

                     id of the key-roll to be used.

       <key-roll>
               The key-roll section is used by dnssec policies and is meant to  be  referenced  by  a  key-suite
              section.   It's  essentially a deployment calendar.  Each event is computed relatively to another.
              Dates are chosen so that there is always a key in an active state. Please look at the examples  as
              a  misconfiguration  could  easily  span  the  life  of  a  key  over several years. (e.g.: by too
              restrictive on the matching conditions) If the RELDATE format is being used, the first valid  date
              matching the line is used. Usage of the RELDATE format is recommended over the RELTIME one.

              id RELDATE|RELTIME
                      default: -

                     id of the key-roll section.

              generate RELDATE|RELTIME
                      default: -

                     Time  when the key must be generated. Pre-dated before so it's active right now if it's the
                     first  one.  Always  computed  so  that  the  next  activation  happens  before  the   last
                     deactivation.

              publish RELDATE|RELTIME
                      default: -

                     Time when the key must be published in the zone. Relative to the generation.

              activate RELDATE|RELTIME
                      default: -

                     Time  when  the  key will be used for signing the zone or apex of the zone. Relative to the
                     publication.

              inactive RELDATE|RELTIME
                      default: -

                     Time when the key will not be used anymore for signing. Relative to the activation.

              delete RELDATE|RELTIME
                      default: -

                     Time when the key will be removed out of the zone. Relative to the deactivation.

       <key-template>
               The key-template section is used by dnssec policies and is meant to be referenced by a  key-suite
              section.  It contains the various parameters of a key for its generation.

              id STR
                      default: -

                     id of the key-template section.

              ksk FLAG
                      default: false

                     When this flag is enabled a ksk will be generated. When disabled a zsk will be generated.

              algorithm ENUM
                      default: 7

                     Sets the algorithm of the key. Supported values are: ’DSA’; 3; ’RSASHA1’; 5; ’NSEC3DSA’; 6;
                     ’NSEC3RSASHA1’;    7;    ’RSASHA256’;    8;   ’RSASHA512’;   10;   ’ECDSAP256SHA256’;   13;
                     ’ECDSAP384SHA384’; 14.

              size INT
                      default: 0

                     The length of the key in bits (incompatible sizes will be rejected). (MIN: 0; MAX: 4096)

       <denial>
               The denial section is used by dnssec policies and is meant to be referenced  by  a  dnssec-policy
              section.   It  is  used to define the NSEC3 denial parameters of a dnssec policy. Policies using a
              NSEC denial don't need to use this section.

              id STR
                      default: -

                     id of the denial section.

              salt HEXSTR
                      default: empty

                     A base16 encoded sequence of bytes used as the salt parameter of the NSEC3 chain.

              salt-length INT
                      default: 0

                     If the salt parameter isn't set, generates a random salt parameter of that length. (MIN: 0;
                     MAX: 255)

              iterations INT
                      default: 1

                     Iteration parameter of the NSEC3 chain. (MIN: 0; MAX: 65535)

              optout FLAG
                      default: false

                     Enables opt-out coverage in the NSEC3 chain. When this flag is enabled,  delegations  which
                     do not have a DS record will not be covered by an NSEC3 record.

EXAMPLES

       Examples of containers defined for a configuration file.

       *      Main

              1.     Main section example

                     <main>
                         # Detach from the console (alias: daemonize)
                         daemon                  off

                         # Jail the application
                         chroot                  off

                         # The path of the log files (alias: chroot-path)
                         chrootpath              "/chroot/yadifad"

                         # The path of the log files (alias: log-path)
                         logpath                 "/var/log/yadifa"

                         # The location of the pid file (alias: pid-file)
                         pidfile                 "/var/run/yadifa/yadifad.pid"

                         # The path of the zone files (alias: data-path)
                         datapath                "/var/lib/yadifa"

                         # The path of the DNSSEC keys (alias: keys-path)
                         keyspath                "/var/lib/yadifa/keys"

                         # The path of the transfer and journaling files (AXFR & IXFR) (alias: xfr-path)
                         xfrpath                 "/var/lib/yadifa/xfr"

                         # A string returned by a query of hostname. CH TXT
                         # note: if you leave this out, the real hostname will be given back (alias: hostname-chaos)
                         hostname                "server-yadifad"

                         # An ID returned by a query to id.server. CH TXT (alias: serverid-chaos)
                         serverid                "yadifad-01"

                         # The version returned by a query to version.yadifa. CH TXT (alias: version-chaos)
                         version                 {3.0.2}

                         # Set the maximum UDP packet size.
                         # note: the packetsize cannot be less than 512 or more than 65535.
                         #       Typical choice is 4096.
                         edns0-max-size          4096

                         # The maximum number of parallel TCP queries (max-tcp-connections)
                         max-tcp-queries         100

                         # The minimum data rate for a TCP query (in bytes per second)
                         tcp-query-min-rate      512

                         # The user id to use (alias: user)
                         uid                     yadifa

                         # The group id to use (alias: group)
                         gid                     yadifa

                         # The DNS port - any DNS query will use that port unless a specific value is used (alias: server-port)
                         port                    53

                         # The interfaces to listen to.
                         listen                  127.0.0.1, 192.0.2.2, 192.0.2.130 port 8053, 2001:db8::2

                         # Type of querylog to use
                         #   0: none
                         #   1: yadifa
                         #   2: bind
                         #   3: both yadifa and bind
                         queries-log-type        1

                         # Enable the collection and logging of statistics
                         statistics              on

                         # Maximum number of seconds between two statistics lines
                         statistics-max-period   60

                         # Drop queries with erroneous content
                         #
                         # answer-formerr-packets on
                         answer-formerr-packets  off

                         # Maximum number of records in an AXFR packet. Set to 1 for compatibility
                         # with very old name servers (alias: axfr-max-record-by-packet)
                         axfr-maxrecordbypacket  0

                         # Global Access Control rules
                         #
                         # Rules can be defined on network ranges, TSIG signatures, and ACL rules

                         # simple queries:
                         #
                         # allow-query any
                         allow-query             !192.0.2.251,any

                         # dynamic update of a zone
                         #
                         # allow-update none
                         allow-update            admins

                         # dynamic update of a secondary (forwarded to the primary)
                         #
                         # allow-update-forwarding   none
                         allow-update-forwarding admins,key abroad-admin-key

                         # transfer of a zone (AXFR or IXFR)
                         #
                         # allow-transfer any
                         allow-transfer          transferer

                         # notify of a change in the primary
                         #
                         # allow-notify any
                         allow-notify            primary,admins

                         # If YADIFA has the controller enabled, allow control only for these
                         # clients (none by default)
                         allow-control           controller

                         # overwrite the amount of CPUs detected by yadifad
                         cpu-count-override 3

                         # set the number of threads to serve queries
                         thread-count-by-address 2

                     </main>

       *      Key
              TSIG-key configuration

              1.     Admin-key key definition (the name is arbitrary)

                     <key>
                         name        abroad-admin-key
                         algorithm   hmac-md5
                         secret      WorthlessKeyForExample==
                     </key>

              2.     primary-secondary key definition (the name is arbitrary)

                     <key>
                         name        primary-secondary
                         algorithm   hmac-md5
                         secret      PrimaryAndSecondaryKey==
                     </key>

       *      ACL
              Access Control List definitions

              1.     primary-secondary key use

                     <acl>
                         transferer  key primary-secondary
                         admins      192.0.2.0/24, 2001:db8::74
                         primary     192.0.2.53
                         localhost   127.0.0.0/8, ::1
                         controller  key controller # the ACL for the controller MUST use a key
                     </acl>

       *      NSID
              DNS NameServer IDentifier

              1.     Example with ascii

                     <nsid>
                         ascii belgium-brussels-01
                     </nsid>

              2.     Example with hex

                     <nsid>
                         hex 00320201
                     </nsid>

       *      RRL
              Response Rate Limiting

              1.     Example

                     <rrl>
                         # Number of identical responses per second before responses are being limited
                         responses-per-second    5

                         # Number of errors per second before responses are being limited
                         errors-per-second       5

                         # Random slip parameter
                         slip                    10

                         # If enabled, the rate limits are only logged and not enforced
                         log-only                off

                         # Mask applied to group the IPv4 clients
                         ipv4-prefix-length      24

                         # Mask applied to group the IPv6 clients
                         ipv6-prefix-length      56

                         # Rate limits are not subject to the following clients (aka whitelist)
                         exempt-clients          none

                         # Enable or disable the rate limit capabilities
                         enabled                 yes
                     </rrl>

       *      Zone

              1.     Primary domain zone config

                     <zone>
                         # This server is primary for the zone (mandatory)
                         type            primary

                         # The domain name (mandatory)
                         domain          mydomain.eu

                         # The zone file, relative to 'datapath'  (mandatory for a primary) (alias: file-name)
                         file            primaries/mydomain.eu

                         # List of servers also notified of a change (beside the ones in the zone file) (alias: notifies, notify)
                         also-notify     192.0.2.84, 192.0.2.149

                         # Set the size of the journal file in KB (alias: journal-size-kb)
                         journal-size    8192

                         # Allow dynupdate for these ACL entries
                         allow-update    admins

                         # Allow AXFR/IXFR for these ACL entries
                         allow-transfer  transferer

                         # Use DNSSEC policies otherwise remove or put in remark line below
                         dnssec-policy   1
                     </zone>

              2.     Slave domain zone config

                     <zone>
                         # This server is slave for that zone (mandatory)
                         type            slave

                         # The domain name (mandatory)
                         domain          myotherdomain.eu

                         # The address of the primary (mandatory for a secondary, forbidden for a primary) (alias: primary)
                         primaries       191.0.2.53 port 4053 key primary-secondary

                         # The zone file, relative to 'datapath'.
                         file            slaves/myotherdomain.eu

                         # Accept notifes from these ACL entries
                         allow-notify    primary
                     </zone>

       *      DNSSEC-Policy

       DNSSEC-Policy  needs  some  extra  sections:  key-suite,  key-roll,  key-template (and denial if NSEC3 is
       configured)

              1.     dnssec-policy example with all the needed sections

                     example with NSEC3
                     <dnssec-policy>
                         id              "1"

                         description     "Example of ZSK and KSK"
                         denial          "nsec3-with-salt-on"
                         key-suite       "zsk-1024"
                         key-suite       "ksk-2048"
                     </dnssec-policy>

                     example with NSEC
                     <dnssec-policy>
                         id              "2"

                         description     "Example of ZSK and KSK"
                         denial          nsec
                         key-suite       "zsk-1024"
                         key-suite       "ksk-2048"
                     </dnssec-policy>

              2.     key-suite
                     <key-suite>
                         id              "ksk-2048"

                         key-template    "ksk-2048"
                         key-roll        "yearly-schedule"
                     </key-suite>

                     <key-suite>
                         id              "zsk-1024"

                         key-template    "zsk-1024"
                         key-roll        "monthly-schedule"
                     </key-suite>

              3.     key-roll
                     <key-roll>
                         id                 "yearly-schedule"

                         generate            5          0           15                  6            *                 * # this year   (2018) 15/06 at 00:05
                         publish             10         0           15                  6            *                 * #                             00:10
                         activate            15         0           16                  6            *                 * #                    16/06 at 00:15
                         inactive            15         0           17                  6            *                 * #             (2019) 17/06 at 00:15
                         remove              15        11           18                  6            *                 * #             (2019) 18/06 at 11:15
                     </key-roll>

                     <key-roll>
                         id                 "monthly-schedule"

                         generate            5          0           *                   *            tue               0 # 1 tuesday   of the month at 00:05
                         publish             10         0           *                   *            tue               0 #                             00:10
                         activate            15         0           *                   *            wed               0 # 1 wednesday of the month at 00:15
                         inactive            15         0           *                   *            thu               0 # 1 thursday  of the month at 00:15
                         remove              15        11           *                   *            fri               0 # 1 friday    of the month at 11:15
                     </key-roll>

              4.     key-template
                     <key-template>
                         id              "ksk-2048"

                         ksk             true
                         algorithm       8
                         size            2048
                     </key-template>

                     <key-template>
                         id              "zsk-1024"

                         ksk             false
                         algorithm       8
                         size            1024
                     </key-template>

              5.     denial
                     <denial>
                         id              "nsec3-with-salt-on"

                         salt            "ABCD"
                         algorithm       1
                         iterations      5
                         optout          off
                     </denial>

                     <denial>
                         id              "nsec3-with-salt-length-on"

                         salt-length     4
                         algorithm       1
                         iterations      5
                         optout          off
                     </denial>

       *      Channels

       Logging output-channel configurations:

       It contains a list of user-defined outputs for the logger.

       The "name" is arbitrary and is used for identification in the <loggers>.
       The "stream-name" defines the output type (ie: a file name, a program output or syslog).
       The "arguments" are specific to the output type (ie: unix  file  access  rights  or  syslog  options  and
       facilities).

              1.     Example: YADIFA running as daemon channel definition.

                     <channels>
                     #   name        stream-name     arguments
                         database    database.log    0644
                         dnssec      dnssec.log      0644
                         server      server.log      0644
                         statistics  statistics.log  0644
                         system      system.log      0644
                         queries     queries.log     0644
                         zone        zone.log        0644
                         all         all.log         0644

                         gziplog     "|/usr/bin/gzip \- >> /var/log/yadifa.log.gz"

                         syslog      syslog          user
                     </channels>

              2.     Example: YADIFA running in debug mode.
                     This  example  shows the "stderr" and "stdout" which can also be used in the first example,
                     but will output to the console.

                     <channels>
                     #   name        stream-name     arguments
                         syslog      syslog          user

                         stderr      STDERR
                         stdout      STDOUT
                     </channels>

       *      Loggers

       Logging input configurations:

       The "bundle" is the name of the section of YADIDA being logged, sources are : database, dnssec,  queries,
       server, stats, system, zone.
       The "debuglevel" uses the same names as syslog.
       Additionally, "*" or "all" means all the levels; "prod" means all but the debug levels.

       The "channels" are a comma-separated list of channels.

              1.     Example without syslog

                     <loggers>
                     #   bundle          debuglevel                          channels
                         database        ALL                                 database,all
                         dnssec          warning                             dnssec,all
                         server          INFO,WARNING,ERR,CRIT,ALERT,EMERG   server,all
                         stats           prod                                statistics
                         system          *                                   system,all
                         queries         *                                   queries
                         zone            *                                   zone,all
                     </loggers>

              2.     Example with syslog

                     <loggers>
                     #   bundle          debuglevel                          channels
                         database        ALL                                 database,syslog
                         dnssec          warning                             dnssec,syslog
                         server          INFO,WARNING,ERR,CRIT,ALERT,EMERG   server,syslog
                         stats           prod                                statistics, syslog
                         system          *                                   system,syslog
                         queries         *                                   queries,syslog
                         zone            *                                   zone,syslog
                     </loggers>

SEE ALSO

       yadifad(8)

NOTES

       Since  unquoted  leading whitespace is generally ignored in the yadifad.conf you can indent everything to
       taste.

CHANGES

       Please check the file README from the sources.

VERSION

       Version: 3.0.2 of 2025-03-11.

MAILING LISTS

       There exists a mailinglist for questions relating to any program in the yadifa package:

       *      yadifa-users@mailinglists.yadifa.eu
              for submitting questions/answers.

       *      http://www.yadifa.eu/mailing-list-users
              for subscription requests.

       If you would like to stay informed about new versions and official patches send a subscription request to
       via:

       *      http://www.yadifa.eu/mailing-list-announcements

       (this is a readonly list).

LICENSE AND COPYRIGHT

       Copyright
              (C)2011-2023", EURid
              B-1831 Diegem, Belgium
              info@yadifa.eu

AUTHORS

       Gery Van Emelen
       Email: Gery.VanEmelen@EURid.eu
       Eric Diaz Fernandez
       Email: Eric.DiazFernandez@EURid.eu

       WWW: http://www.EURid.eu

YADIFA                                             2025-03-11                                    YADIFAD-CONF(5)