YAKEYROLLD-CONF(5)
π YAKEYROLLD-CONF(5) π
YADIFA manual Β· bestie, this is the config-file page for yakeyrolld(8) π«Ά
π NAME π
yakeyrolld.conf β the configuration file for yakeyrolld(8). π
β¨ SYNOPSIS β¨
${SYSCONFDIR}/yakeyrolld.conf
π¦ DESCRIPTION π¦
Okay so yakeyrolld keeps its config in a text file, and that file can optionally include other files too. The general structure is a sequence of containers: lines of text that start with a <container-name> and end with a </container-name>. Every line between those delimiters is in the form variable-name value, and the format of the value is determined by the type of the variable. Slay. π
There are 7 types:
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 wordportand a port number. Elements of the list are separated by a,or a;.INTEGER/INTβ a base-ten integer.PATH/FILEβ a file or directory path. i.e.:"/var/plans".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.UIDβ user ID. (Can be a number or a name)
πΈ STANDARD SECTIONS πΈ
There are 9 sections (that's what the page says, bestie). The containers it lists are:
π <yakeyrolld> π
General container β it contains all the configuration parameters needed to start up yakeyrolld.
domainFQDNβdefault: .Names one domain to manage, can be used up to 200 times. Inyadifad.conf, each of these domains must haverrsig-nsupdate-allowedenabled in their respective<zone>section.log-pathPATHβdefault: ${localstatedir}/log/yakeyrolldThe directory that will contain the log files.keys-pathPATHβdefault: ${localstatedir}/zones/keysThe directory the name server uses to read zone key file.plan-pathPATHβdefault: ${localstatedir}/plansThe directory of the step files.pid-pathPATHβdefault: ${localstatedir}/runThe directory of the pid file.pid-fileSTRINGβdefault: yakeyrolld.pidThe name of the pid file.generate-fromSTRINGβdefault: "now"For plan generation, when to start the plan, can be overridden by the command line.generate-untilSTRINGβdefault: "+1y"For plan generation, when to stop the plan, can be overridden by the command line.serverHOSTβdefault: 127.0.0.1The address of the name server for queries and dynamic updates.timeoutINTβdefault: 3The number of seconds spent trying to communicate with the primary until it's considered a time-out.ttlINTβdefault: 600The default ttl value to use when generating records.update-apply-verify-retriesINTβdefault: 60If an update isn't checked successfully, retries that many times.update-apply-verify-retries-delayINTβdefault: 1Waits that many seconds between two update apply tries.match-verify-retriesINTβdefault: 60If a match test fails, retries that many times.match-verify-retries-delayINTβdefault: 1Waits that many seconds between two match test tries.policySTRINGβdefault: undefinedThe name of the policy to use when generating the plan.uidUIDβdefault: 0The uid to switch to. This should match the name server's.gidGIDβdefault: 0The gid to switch to. This should match the name server's.
π§ <dnssec-policy> π§
Description of dnssec policies.
idSTRβdefault: -id of thednssec-policysection.descriptionSTRβdefault: -Description for thednssec-policysection.key-suiteSTRβdefault: -id of the key-suite to be used.
π <key-suite> π
Description of the key-suites needed if 'dnssec policies' are used.
idSTRβdefault: -id of the key-suite section.key-templateSTRβdefault: -id of the key-template to be used.key-rollSTRβdefault: -id of the key-roll to be used.
π₯ <key> π₯
TSIG keys.
algorithmENUMβ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)nameFQDNβdefault: -Mandatory. Sets the name of the key.secretTEXTβdefault: -Mandatory. Sets the value of the key. BASE64 encoded.
π <key-roll> π
Description of the key-rolls needed if 'dnssec policies' are used.
idSTRβdefault: -id of the key-roll section.generateSTRβdefault: -Time when the key must be generated.publishSTRβdefault: -Time when the key must be published in the zone.activateSTRβdefault: -Time when the key will be used for signing the zone or apex of the zone.inactiveSTRβdefault: -Time when the key will not be used anymore for signing.deleteSTRβdefault: -Time when the key will be removed out of the zone.
π <key-template> π
Description of the key-templates needed if 'dnssec policies' are used.
idSTRβdefault: -id of the key-roll section.generateSTRβdefault: -Time when the key must be generated.publishSTRβdefault: -Time when the key must be published in the zone.activateSTRβdefault: -Time when the key will be used for signing the zone or apex of the zone.inactiveSTRβdefault: -Time when the key will not be used anymore for signing.deleteSTRβdefault: -Time when the key will be removed out of the zone.
π <channels> π
Description of the logger outputs.
It contains a list of 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 (i.e.: a file name, a program output or syslog). The arguments are specific to the output type (i.e.: 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 stdoutchannel-name stderr
- syslog:
channel-name syslog syslog-facility
β <loggers> β
Description of the logger outputs sources.
Sets the output of a pre-defined logger for yakeyrolld.
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.PRODmeans all but theDEBUGfilters.
The defined loggers are:
keyrollβ contains general messages about the keyroll.dnssecβ contains messages about DNSSEC-related computations during the generation.systemβ contains low level messages about the system such as memory allocation, threading, IOs, timers and cryptography, ...
System operators will mostly be interested in the info and above messages of the keyroll and dnssec loggers. π
β¨ EXAMPLES β¨
Okay bestie, these are the example containers you can put in a configuration file. Itβs giving βcopy, paste, customize, slayβ π
π Main
1. Config with includes
This one is the include glow-up: it pulls in another file between the start and end markers.
# start yakeyrolld.conf <yakeyrolld> container
include /etc/yakeyrolld/conf.d/local.conf
# end yakeyrolld.conf <yakeyrolld> container
2. Main without includes
No includes, just the full main container doing its main-character thing. Every comment and value is exactly the vibe:
<yakeyrolld>
# Detach from the console (alias: daemonize)
daemon off
# The directory to use for the log files
log-path "/var/log/yakeyrolld"
# The directory that yadifad uses to load private keys
keys-path "/var/lib/yadifa/keys"
# The directory to use to store the plans
plan-path "/var/lib/yadifa/plans"
generate-from "now"
generate-until "+1y"
server 127.0.0.1
policy "keyroll-policy"
</yakeyrolld>
π Key
TSIG-key configuration, bestie. This is where keys get their little identities.
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
<key>
name primary-secondary
algorithm hmac-md5
secret PrimaryAndSecondaryKey==
</key>
π‘οΈ DNSSEC-Policy
DNSSEC-Policy needs some extra sections: key-suite, key-roll, key-template. Not optional in this example, okay?
1. dnssec-policy example with all the needed sections
<dnssec-policy>
id "keyroll-policy"
description "Example of ZSK and KSK"
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-calendar"
</key-suite>
<key-suite>
id "zsk-1024"
key-template "zsk-1024"
key-roll "monthly-calendar"
</key-suite>
3. key-roll
<key-roll>
id "yearly-calendar"
generate 11 10 * 1 mon 1 # Januay, Monday of the second week at 10:11
publish 11 10 * 1 tue * # following Tuesday at 10:11
activate 11 10 * 1 wed * # following Wednesday at 10:11
inactive 11 10 * 1 mon * # following Monday, a year after, at 10:11
remove 11 10 * 1 wed * # following Wednesday at 10:11
</key-roll>
<key-roll>
id "monthly-calendar"
generate 17 10 * * mon 0 # 1st monday the month at 10:17
publish 17 10 * * tue * # following tuesday at 10:17
activate 17 10 * * wed * # following wednesday at 10:17
inactive 17 10 * * wed * # following wednesday at 10:17 (one week after the activation)
remove 17 10 * * thu * # following thursday at 10:17
</key-roll>
4. key-template
<key-template>
id "ksk-2048"
ksk true
algorithm RSASHA512
size 2048
</key-template>
<key-template>
id "zsk-1024"
ksk false
algorithm RSASHA512
size 1024
</key-template>
π‘ 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 (i.e.: a file name, a program output or syslog). The "arguments" are specific to the output type (i.e.: unix file access rights or syslog options and facilities).
1. Example: logging channels definition.
<channels>
# name stream-name arguments
keyroll keyroll.log 0644
dnssec dnssec.log 0644
system system.log 0644
all all.log 0644
</channels>
π Loggers
Logging input configurations: the "bundle" is the name of the section of yakeyroll 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 logger configuration
<loggers>
# bundle debuglevel channels
keyroll prod keyroll,all
dnssec prod dnssec,all
system prod system,all
</loggers>
π SEE ALSO
yakeyrolld(8) β thatβs the cross-reference, bestie. Go read it if you want the daemon side of the story.
π NOTES
Since unquoted leading whitespace is generally ignored in the yadifad.conf you can indent everything to taste. Cute, right? Go off with your spacing π
π CHANGES
Please check the file README from the sources. Thatβs the tea β
π·οΈ VERSION
Version: 3.0.9 of 2026-03-24.
π 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:
(this is a readonly list).
Β©οΈ LICENSE AND COPYRIGHT
Copyright:
(C)2011-2025, 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
Thatβs the whole page, bestie. Sign-off: source YAKEYROLLD, page YAKEYROLLD-CONF(5), version 3.0.9, dated 2026-03-24. Byeeee π«Άπβ¨
π¦ where this page comes from
- alpine 3.24: yadifa-doc 3.0.9-r0 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms