YADIFAD-CONF(5)

NAME

yadifad.conf is the configuration file for yadifad(1).

SYNOPSIS

${PREFIX}/etc/yadifad.conf

DESCRIPTION

The configuration of yadifad has several containers:

<main>
     General container

<zone>
    Description of the domain name in specific attributes

<channels>
    Description of the logger outputs

<loggers>
    Description of the loggers

<key>
    TSIG keys

<acl>
    Access lists.

The configuration supports included files.
example: include /usr/local/var/zones/master/yadifad-2.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.

eg.

<container>
        # variable  argument
        variable    value1
        # variable  argument1       argument2
        variable    value1          value2
        # variable  argument1
        variable    value1,value2
</container>

EXAMPLES

Examples of containers defined for a configuration file.

*   Main

    1.  Config with includes

        # start yadifad.conf <main> container
                include /usr/local-dev/etc/yadifad-main.conf
        # end yadifad.conf <main> container

    2.  Main without includes
        <main>
                # Detach from the console
                daemon                  off
                # Jail the application
                chroot                  off
                # The path of the log files
                logpath                 "/usr/local/var/log"
                # The location of the pid file
                pidfile                 "/usr/local/var/run/yadifad.pid"
                # The path of the zone files
                datapath                "/usr/local/var/zones"
                # The path of the DNSSEC keys
                keyspath                "/usr/local/var/zones/keys"
                # The path of the transfer and journaling files (AXFR & IXFR)
                xfrpath                 "/usr/local/var/zones/xfr"
                # The version returned by a query to version.yadifa. CH TXT
                version                 "1.0.0rc2"
                # Enable EDNS0 support (?)
                edns0                   on
                # Set the maximum UDP packet size.  Packetsize annot be less than 512.  or more than 65535.  A typical choice is 4096.
                edns0-max-size          4096
                # The maximum number of parallel TCP queries.
                max-tcp-queries         100
                # The user id to use
                uid                     yadifa
                # The group id to use
                gid                     yadifa
                # The DNS port - any DNS query will use that port unless a specific value is used
                port                    53
                # The interfaces to listen to.
                # listen        0.0.0.0
                listen                  127.0.0.1, 192.0.2.2, 192.0.2.130 port 8053, 2001:db8::2
                # Enable the collection and logging of statistics
                statistics              on
                # 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
                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 slave (forwarded to the master)
                #
                # 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 master
                #
                # allow-notify any
                allow-notify            master,admins
        </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.  Master-slave key definition

        <key>
                name        master-slave
                algorithm   hmac-md5
                secret      MasterAndSlavesTSIGKey==
        </key>

*   ACL
    Access Control List definitions

    1.  Master-slave key use

        <acl>
            transferer  key master-slave
            admins      192.0.2.0/24, 2001:db8::74
            master      192.0.2.53
        </acl>

*   Zone

    1.  Master domain zone config

        <zone>
                # This server is master for that zone (mandatory)
                type        master
                # The domain name (mandatory)
                domain      mydomain.eu
                # The zone file, relative to 'datapath'  (mandatory for a master)
                file        master/mydomain.eu
                # List of servers also notified of a change (beside the ones in the zone file)
                also-notify 192.0.2.84, 192.0.2.149
        </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 master (mandatory for a slave, forbidden for a master)
                masters     191.0.2.53 port 4053 key master-slave
                # The zone file, relative to 'datapath'.
                file        slaves/myotherdomain.eu
        </zone>

*   Channels

Logging output-channel configurations:

The "name" is arbitrary and is used in the <loggers>.
The "stream-name" defines the output type (ie: a file name 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
            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" name is predifined: database, dnssec, server, statistics, system, zone.
The "debuglevel" uses the same names as syslog or "*" or "all" to filter the input.

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
            statistics      *                                   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           *                                   statistics, syslog
            system          *                                   system,syslog
            queries         *                                   queries,syslog
            zone            *                                   zone,syslog
        </loggers>

SEE ALSO

yadifad(1)

NOTES

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

CHANGES
Please check the file ChangeLog from the sources

VERSION

Version: 2.0.0 of 2014-07-02.

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)2012, 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