DTCONFCHK(1)
πΈ NAME πΈ
Okay bestie, welcome to DTCONFCHK(1) β the dtconfchk(1) page from the User Contributed Perl Documentation crew π
. This little icon checks a DNSSEC-Tools configuration file for sanity. Yes, we're doing a vibe check on your config. No cap.
β¨ SYNOPSIS β¨
dtconfchk [options] [config_file]
π¦ DESCRIPTION π¦
So dtconfchk checks a DNSSEC-Tools configuration file to determine if the entries are valid. If you don't specify a configuration file, the system configuration file will be verified. It's giving responsible default behavior.
Without any display options, dtconfchk displays error messages for problems found, followed by a summary line. Display options will increase or decrease the amount of detail about the configuration file's sanity. In all cases, the exit code is the count of errors found in the file. Literally the error count as the exit code β periodt.
The tests are divided into five groups: key-related checks, zone-related checks, path checks, rollover checks, and miscellaneous checks. The checks in each of these self-explanatory groups are described below.
The default_keyrec configuration entry is not checked. This entry specifies the default keyrec file name and isn't necessarily expected to exist in any particular place. So leave it alone, it's doing its own thing.
π Boolean Values π
The DNSSEC-Tools configuration file has a number of fields that are expected to hold boolean values. The recognized values for booleans are as follows:
true values - 1, true, t, yes, y
false values - 0, false, f, no, n
Positive values greater than 1 are recognized as true values, but it probably would be best to use 1. Text values that aren't in the set above are not valid and will translate to false values. So don't try to be cute with random text β it will lowkey become false.
π Key-related Checks π
The following key-related checks are performed:
algorithmβ Ensure thealgorithmfield is valid. The acceptable values may be found in thednssec-keygenman page.ksklengthβ Ensure theksklengthfield is valid. The acceptable values may be found in thednssec-keygenman page. This may also be specified asksklen.ksklifeβ Ensure theksklifefield is valid. The acceptable values may be found in thedefaults.pmman page.zskcountβ Ensure thezskcountfield is valid. The ZSK count must be positive.zsklengthβ Ensure thezsklengthfield is valid. The acceptable values may be found in thednssec-keygenman page. This may also be specified aszsklen.zsklifeβ Ensure thezsklifefield is valid. The acceptable values may be found in thedefaults.pmman page.randomβ Ensure therandomfield is valid. This file must be a character device file.
π Zone-related Checks π
The following zone-related checks are performed:
endtimeβ Ensure theendtimefield is valid. This value is assumed to be in the"+NNNNNN"format. There is a lower limit of two hours. (This is an artificial limit under which it may not make sense to have an end-time.)
π£οΈ Path Checks π£οΈ
Path checks are performed for several DNSSEC-Tools commands, several BIND commands, and a few miscellaneous files. Here's the whole lineup, bestie:
π DNSSEC-Tools commands π
The following path checks are performed for DNSSEC-Tools commands:
genkrfβ Ensure thegenkrffield is valid. If the filename starts with a/, the file must be a regular executable file.keyarchβ Ensure thekeyarchfield is valid. If the filename starts with a/, the file must be a regular executable file.rollchkβ Ensure therollchkfield is valid. If the filename starts with a/, the file must be a regular executable file.rollctlβ Ensure therollctlfield is valid. If the filename starts with a/, the file must be a regular executable file.zonesignerβ Ensure thezonesignerfield is valid. If the filename starts with a/, the file must be a regular executable file.
π¦ BIND tools π¦
The following path checks are performed for BIND tools:
keygenβ Ensure thekeygenfield is valid. If the filename starts with a/, the file must be a regular executable file.rndcβ Ensure therndcfield is valid. If the filename starts with a/, the file must be a regular executable file.zonecheckβ Ensure thezonecheckfield is valid. If the filename starts with a/, the file must be a regular executable file.zonesignβ Ensure thezonesignfield is valid. If the filename starts with a/, the file must be a regular executable file.
π Miscellaneous files and directories π
The following path checks are performed for miscellaneous files and directories:
randomβ Ensure therandomfield is valid. The file must be a character device file.roll_logfileβ Ensure theroll_logfilefield is a regular file.taresolvconfβ Ensure thetaresolvconffield is a regular file.tatmpdirβ Ensure thetatmpdirfield is a directory.
π Rollover Daemon Checks π
The following checks are performed for rollerd values:
autosignβ Ensure that theautosignflag is a valid boolean.log_tzβ Ensure thelog_tzfield is either'gmt'or'local'.prog_normal,prog_ksk1...prog_ksk7,prog_zsk1...prog_zsk4β Ensure that the rollover phase commands are valid paths. Each of these fields is a semicolon-separated command list. The file checks are run on the commands to ensure the commands exist and are executable. Options and arguments to the commands are ignored, as is thedefaultkeyword.roll_loadzoneβ Ensure that theroll_loadzoneflag is a valid boolean.roll_logfileβ Ensure that the log file for therollerdis valid. If the file exists, it must be a regular file.roll_loglevelβ Ensure that the logging level for therollerdis reasonable. The log level must be one of the following text or numeric values:
tmi 1 Overly verbose informational messages.
expire 3 A verbose countdown of zone expiration is given.
info 4 Informational messages.
phase 6 Current state of zone.
err 8 Error messages.
fatal 9 Fatal errors.
Specifying a particular log level causes messages of a higher numeric value to also be displayed.
roll_sleeptimeβ Ensure that therollerd's sleep-time is reasonable.rollerd's sleep-time must be at least one minute.roll_usernameβ Ensure that the username forrollerdis valid. If it's a username, it must be translatable to a uid; if it's a uid, it must translate to a known username.zone_errorsβ Ensure that the zone error count is numeric and0or greater.
πΈ NSEC3 Checks πΈ
The following checks are performed for NSEC3-related values:
nsec3iterβ Ensure that thensec3iteriteration count falls within the range used bydnssec-signzone. The current values are from1-65535.nsec3optoutβ Ensure that thensec3optoutflag is a valid boolean.usensec3β Ensure that theusensec3flag is a valid boolean.
π§ Miscellaneous Checks π§
The following miscellaneous checks are performed:
admin-emailβ Ensure that theadmin-emailfield is defined and has a value.dtconfchkdoes not try to validate the email address itself.archivedirβ Ensure that thearchivedirdirectory is actually a directory. This check is only performed if thesavekeysflag is set on.entropy_msgβ Ensure that theentropy_msgflag is a valid boolean.savekeysβ Ensure that thesavekeysflag is a valid boolean. If this flag is set to1, then thearchivedirfield will also be checked.useguiβ Ensure that theuseguiflag is a valid boolean.zonefile-parserβ Ensure that thezonefile-parserflag is a valid Perl module. This is checked by using the Perl"require"facility to load the specified module.
β¨ OPTIONS β¨
-expertβ This option will bypass the following checks:- KSK has a longer lifespan than the configuration file's default minimum lifespan
- KSK has a shorter lifespan than the configuration file's default maximum lifespan
- ZSKs have a longer lifespan than the configuration file's default minimum lifespan
- ZSKs have a shorter lifespan than the configuration file's default maximum lifespan
-quietβ No output will be given. The number of errors will be used as the exit code.-summaryβ A final summary of success or failure will be printed. The number of errors will be used as the exit code.-verboseβ Success or failure status of each check will be given. A+or-prefix will be given for each valid and invalid entry. The number of errors will be used as the exit code.-Versionβ Displays the version information fordtconfchkand the DNSSEC-Tools package.-helpβ Display a usage message.
π COPYRIGHT π
Copyright 2004-2014 SPARTA, Inc. All rights reserved. See the COPYING file included with the DNSSEC-Tools package for details.
π«Ά AUTHOR π«Ά
Wayne Morrison, tewok@tislabs.com
π SEE ALSO π
dtdefs(8),dtinitconf(8),rollerd(8),zonesigner(8)Net::DNS::SEC::Tools::conf.pm(3),Net::DNS::SEC::Tools::defaults.pm(3)dnssec-tools.conf(5)
Okay bestie, that's the whole page, and it ate π
. Cute sign-off: this one is stamped with perl v5.44.0 and dated 2026-10-17. Go check those configs and slay β¨.
π¦ where this page comes from
- arch rolling: dnssec-tools 2.2.3-16 Β· BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms