DTINITCONF(1)

πŸ“¦ version 2.2.3, in arch rolling

πŸ’– dtinitconf β€” the DNSSEC-Tools config file generator, bestie edition πŸŽ€

okay so picture this: you're in the DTINITCONF(1) section of the manual (User Contributed Perl Documentation, if we're being fancy ✨) and you need a DNSSEC-Tools configuration file. That's literally what dtinitconf is here for. Let's get into it 🫢

✨ NAME ✨

dtinitconf β€” creates a DNSSEC-Tools configuration file. that's it. that's the whole job. she's iconic and she knows it πŸ’…

🌸 SYNOPSIS 🌸

dtinitconf [options]

πŸ¦‹ DESCRIPTION πŸ¦‹

So the dtinitconf program initializes the DNSSEC-Tools configuration file. By default, the actual configuration file gets created β€” like, the real one β€” though you can tell her to create a file you specify instead. And here's the respectful part: existing files, whether it's the default one or one you named yourself, will not be overwritten unless you specifically direct her to do it. she's not gonna stomp on your stuff without permission, periodt πŸ™ˆ

Every single configuration field can be individually specified on the command line. But also? She'll prompt you for the fields too, with default values pulled straight from the DNSSEC-Tools defaults.pm module. And if you hand her the -noprompt option, then a default configuration file gets created (modulo whatever you passed on the command line, of course) with zero chatting. no small talk, just vibes 😌

Configuration entries get created for several BIND programs, and finding those programs is a whole little journey 🧚 So: several locations on the system get searched to find where these programs live. First, the directories in the path environment variable get checked, and the names of any directories that contain the BIND programs are saved. Next, several common locations for BIND programs get checked, and again β€” the names of directories that contain the BIND programs are saved. After collecting all these directories, the user gets presented with this list and may choose to use whichever set is desired. A little menu moment, very choose-your-own-adventure ⭐ And if no directories are found that contain the BIND programs at all? Then the user gets prompted for the proper location. no cap, she'll just ask πŸ”₯

Now the directory situation, because this part matters πŸ‘‘

If the configuration file's parent directory does not exist, then an attempt is made to create the directory. The new directory's ownership will be set to root for the owner and dnssec for the group β€” assuming the dnssec group exists. And heads up: writability checks for the directory will not be performed if the -outfile option is given.

πŸ’€ real talk on that last bit: pass -outfile and those writability checks just don't happen. that's the documented behaviour, not me being dramatic.

🌸 OPTIONS 🌸

ok so dtinitconf has a whole pile of options and they all control what ends up in your brand-new DNSSEC-Tools configuration file πŸ’–. Every single entry in that config file has a matching command-line option, bestie β€” one-to-one, no cap. They're listed below in logical little groups so it's not complete chaos ✨


these ones are all about creating and managing your encryption keys πŸ‘‘

  • -algorithm algorithm β€” picks the crypto algorithm. the value has to be one that the dnssec-keygen you've actually got installed recognizes, so no inventing algorithms, bestie 🫢
  • -kskcount KSK-count β€” the default number of KSK keys that get created for a zone.
  • -ksklength keylen β€” the default KSK key length that gets handed off to dnssec-keygen.
  • -ksklife lifespan β€” the default gap between KSK rollovers, measured in seconds. has to sit inside the range set by minlife and maxlife.
ok so important: this value is only used for key rollover. keys do not have a life-time in any other sense. like, don't go thinking your key expires, it doesn't πŸ’€
  • -maxlife maxlifespan β€” the maximum gap between key rollovers, in seconds. ksklife and zsklife both have to be not greater than this.
same deal: only used for key rollover. keys do not have a life-time in any other sense.
  • -minlife minlifespan β€” the minimum gap between key rollovers, in seconds. ksklife and zsklife both have to be not less than this.
again: only used for key rollover. keys do not have a life-time in any other sense ✨
  • -zskcount ZSK-count β€” the default number of ZSK keys created for a zone.
  • -zsklength keylen β€” the default ZSK key length passed to dnssec-keygen.
  • -zsklife lifespan β€” the default gap between ZSK rollovers, in seconds. must be within the range of minlife and maxlife.
and yes: only used for key rollover. keys do not have a life-time in any other sense πŸŽ€
  • -random randomdev β€” the random device generator to pass along to dnssec-keygen.

these deal with signing your zones, mwah 😘

  • -endtime endtime β€” the zone's default expiration time, passed to dnssec-signzone.

the trustman side of things, iykyk πŸ’œ

  • -genroothints roothints β€” makes a brand-new root.hints file at the location you specify. dtinitconf requires that the file not already exist πŸ™ˆ the root.hints file is fetched from http://www.internic.net/zones/named.root. if dtinitconf can't fetch it, that is not considered a fatal error β€” instead you get a warning message and creation of the config file just keeps on going. resilient queen πŸ’…
  • -ta-contact email β€” the email address of the trustman administrator.
  • -ta-resolvconf resolvconffile β€” where the resolv.conf file lives.
  • -ta-smtpserver hostname β€” the SMTP server for the trustman command.
  • -ta-tmpdir hostname β€” the temporary directory for the trustman command.

πŸ¦‹ BIND Options πŸ¦‹

BIND-specific functionality, very much its own thing ⭐

  • -rndc rndc-path β€” rndc is the path to BIND's rndc command.

πŸ‘‘ DNSSEC-Tools Options πŸ‘‘

all the DNSSEC-Tools-flavoured knobs and dials 🌈

  • -admin email-address β€” admin is the email address of the DNSSEC-Tools administrator. this is the default address used by the dt_adminmail() routine.
  • -archivedir directory β€” directory is the archived-key directory. old encryption keys get moved here, but only if they're supposed to be saved and not deleted πŸ“¦
  • -autosign β€” a flag saying rollerd should automatically sign zonefiles it finds are newer than their signed zonefile. if you specify -noautosign, this gets set to false.
  • -binddir directory β€” directory is the directory holding the BIND programs. if you pass the reserved word "path", then the existence of the BIND programs is not verified when dtinitconf runs β€” instead, the user's PATH directories get searched for the BIND programs when the DNSSEC-Tools are executed. sneaky but valid ✨
  • -dtdir directory β€” directory is the directory holding the DNSSEC-Tools programs. same reserved-word situation: pass "path" and the existence of the DNSSEC-Tools programs isn't verified when dtinitconf runs β€” the user's PATH directories get searched for them when those tools are executed.
  • -entropy_msg β€” a flag saying zonesigner should display a message about entropy generation. this is primarily dependent on how a system's random number generation is implemented πŸ”₯
  • -mailer-server host β€” the mail server that dt_adminmail() will contact. this gets passed to Mail::Send.
  • -mailer-server mailtype β€” the mail type that dt_adminmail() will contact. this gets passed to Mail::Mailer (by way of Mail::Send). any values Mail::Mailer recognizes are fair game here 🫢
  • -noentropy_msg β€” a flag saying zonesigner should not display a message about entropy generation. again, primarily dependent on the system's random number generation implementation.
  • -roll-loadzone, -no-roll-loadzone β€” flags saying whether rollerd should have the DNS daemon load zones, or not.
  • -roll-logfile logfile β€” logfile is the logfile for the rollerd daemon.
  • -roll-loglevel loglevel β€” loglevel is the logging level for the rollerd daemon.
  • -roll-phasemsg length β€” length is the default length of phase-related log messages used by rollerd. valid levels are "long" and "short", and "long" is the default πŸ’… the long message length means a phase description gets included with some log messages. example: the long form of a message about ZSK rollover phase 3 looks like "ZSK phase 3 (Waiting for old zone data to expire from caches)". the short message length means a phase description does not get included with some log messages. example: the short form of that same message looks like "ZSK phase 3".
  • -roll-sleeptime sleep-time β€” sleep-time is the sleep-time for the rollerd daemon.
  • -roll-username username β€” username is the user the rollerd daemon will be executed as. if it's a username, it has to correspond to a valid uid; if it's a uid, it has to correspond to a valid username. both directions, no exceptions 😀
  • -roll-logtz logtz β€” loglevel is the timezone of the message timestamp for rollerd's logfile. (yes, the manpage says loglevel there β€” we're keeping it exactly as written, bestie πŸŽ€)
  • -zoneerrs error-count β€” error-count is the maximum error count for zones, used by the rollerd daemon.
  • -savekeys β€” a flag saying old keys should be moved to the archive directory.
  • -nosavekeys β€” a flag saying old keys should not be moved to the archive directory, and instead get left in place.
  • -usegui β€” a flag saying the GUI for specifying command options may be used πŸ–±οΈ
  • -nousegui β€” a flag saying the GUI for specifying command options should not be used.
  • -zoneparser parser-module β€” parser-module is the name of the Perl module used to parse zone files. the default is specified in dnssec_tools_default().

πŸ’– dtinitconf Options πŸ’–

and these ones are dtinitconf's very own, main character energy πŸ‘‘

  • -outfile conffile β€” the config file gets written to conffile. if you don't give this, the default config file gets used (the one returned by Net::DNS::SEC::Tools::conf::getconffile()). if conffile is given as -, then the new config file gets written to standard output 🌟 conffile must be writable.
  • -overwrite β€” with -overwrite, existing output files may be overwritten. without it, if the output file already exists then dtinitconf gives you an error message and exits πŸšͺ
  • -noprompt β€” with -noprompt, you don't get prompted for any input at all. the config file gets built purely from command-line options and DNSSEC-Tools defaults. guesses get made for the BIND paths, based on the PATH environment variable.
⚠️ WARNING: after using the -noprompt option, the configuration file must be checked to make sure the defaults are appropriate and acceptable for the installation. like, actually check it, bestie, don't just vibe and hope 😭
  • -template β€” with -template, a default config file gets created β€” but every single entry is commented out πŸ™ˆ the only command line options you may use alongside -template are -outfile and -overwrite.
  • -edit β€” with -edit, the output file gets edited after it's been created. the EDITOR environment variable is consulted for which editor to use. if EDITOR isn't defined, then the vi editor is used.
  • -verbose β€” give verbose output πŸ—£οΈ
  • -Version β€” displays the version info for dtinitconf and the DNSSEC-Tools package.
  • -help β€” display a usage message and exit.

Copyright 2006-2014 SPARTA, Inc. All rights reserved. see the COPYING file that comes with the DNSSEC-Tools package for the details 🫢


✨ AUTHOR ✨

Wayne Morrison, tewok@tislabs.com β€” ty Wayne πŸ’œ


🌈 SEE ALSO 🌈

  • dnssec-keygen(8), dnssec-signzone(8), named-checkzone(8), keyarch(8), rollckk(8), rollerd(8), zonesigner(8)
  • Net::DNS::SEC::Tools::conf.pm(3), Net::DNS::SEC::Tools::defaults.pm(3), Net::DNS::SEC::Tools::dnssectools.pm(3), Net::DNS::SEC::Tools::tooloptions.pm(3), QWizard.pm(3)
  • dnssec-tools.conf(5)

aaaand that's the whole page, bestie πŸ¦‹ for the record this was perl v5.44.0, dated 2026-10-17, and it's DTINITCONF(1) β€” go forth and configure your DNSSEC-Tools, you absolute icon πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from