NAMED-COMPILEZONE(1)
π NAMED-COMPILEZONE(1) β like, the zone file glow-up tool
okay so this is named-compilezone, and it's part of the whole BIND 9 situation β¨ she checks your zone file, tells you if it's a mess, and then dumps the whole thing into a file in whatever format you asked for. bestie behavior fr fr π«Ά
β¨ NAME β¨
named-compilezone β the zone file validity-checking and converting tool π
πΈ SYNOPSIS πΈ
named-compilezone [-d] [-h] [-j] [-q] [-v] [-c class] [-C mode] [-f
format] [-F format] [-J filename] [-i mode] [-k mode] [-m mode] [-M
mode] [-n mode] [-l ttl] [-L serial] [-r mode] [-s style] [-S mode] [-t
directory] [-T mode] [-w directory] [-D] [-W mode] {-o filename}
{zonename} {filename}
like yes, that's a lot of brackets, she's extra π but every single one of them is real, i promise.
π¦ DESCRIPTION π¦
named-compilezone checks the syntax and integrity of a zone file, and then dumps the zone contents to a file you specify, in a format you specify. iconic.
but here's the tea β β unlike named-checkzone, the zone contents are not strictly checked by default. so if the output is gonna be used as an actual zone file that named loads, you gotta manually set the check levels to be at least as strict as whatever's in your named configuration file. no cap, don't skip this step.
π‘ also: runningnamed-checkzoneon the input before compiling will make sure the zone compiles with the default requirements ofnamed. so like, do that first. you're welcome π
π OPTIONS π
okay bestie, buckle up, here come all of them π
-dβ turns on debugging. she's telling you everything now.-hβ prints the usage summary and dips out. classic.-qβ quiet mode β¨ which literally only sets an exit code to say whether it worked or flopped. no chatter, just vibes.-vβ prints the version of thenamed-checkzoneprogram and exits. hi bestie, what's your sign (version).-jβ when loading a zone file, tellsnamedto read the journal if it exists. the journal file name is assumed to be the zone file name with the string.jnltacked on the end. cute.-Jfilenameβ when loading the zone file, tellsnamedto read the journal from the givenfilename, if it exists. this one implies-jπ so you don't gotta say both.-cclassβ specifies the class of the zone. if you don't say anything,INis assumed. default queen π-Cmodeβ controls check mode on zone files when loading. possible modes arecheck-svcb:failandcheck-svcb:ignore.check-svcb:failturns on additional checks on_dnsSVCB records πcheck-svcb:ignoredisables these checks.- the default is
check-svcb:ignore.
-imodeβ performs post-load zone integrity checks π possible modes arefull,full-sibling,local,local-sibling, andnone(the default).- mode
fullchecks that MX records refer to A or AAAA records (both in-zone and out-of-zone hostnames). modelocalonly checks MX records which refer to in-zone hostnames. - mode
fullchecks that SRV records refer to A or AAAA records (both in-zone and out-of-zone hostnames). modelocalonly checks SRV records which refer to in-zone hostnames. - mode
fullchecks that delegation NS records refer to A or AAAA records (both in-zone and out-of-zone hostnames). it also checks that glue address records in the zone match those advertised by the child. modelocalonly checks NS records which refer to in-zone hostnames or verifies that some required glue exists, i.e., when the name server is in a child zone. - modes
full-siblingandlocal-siblingdisable sibling glue checks, but are otherwise the same asfullandlocal, respectively. - mode
nonedisables the checks. not me choosing this and then wondering why everything's broken π
- mode
-fformatβ specifies the format of the zone file. possible formats aretext(the default) andraw.-Fformatβ specifies the format of the output file. fornamed-checkzone, this does not have any effect unless it dumps the zone contents.- possible formats are
text(the default), which is the standard textual representation of the zone, andrawandraw=N, which store the zone in a binary format for rapid loading bynamed.raw=Nspecifies the format version of the raw zone file: ifNis0, the raw file can be read by any version ofnamed; ifNis1, the file can only be read by release9.9.0or higher. the default is1.
- possible formats are
-kmodeβ performscheck-nameschecks with the specified failure mode. possible modes arefail,warn, andignore(the default).-lttlβ sets a maximum permissible TTL for the input file. any record with a TTL higher than this value causes the zone to be rejected π€ this is similar to using themax-zone-ttloption innamed.conf.-Lserialβ when compiling a zone to raw format, this sets the "source serial" value in the header to the specified serial number. it's expected to be used primarily for testing purposes π§ͺ-mmodeβ specifies whether MX records should be checked to see if they are addresses. possible modes arefail,warn, andignore(the default).-Mmodeβ checks whether a MX record refers to a CNAME. possible modes arefail,warn, andignore(the default).-nmodeβ specifies whether NS records should be checked to see if they are addresses. possible modes arefail,warn, andignore(the default).-ofilenameβ writes the zone output tofilename. iffilenameis-, then the zone output is written to standard output. this one is mandatory fornamed-compilezoneβ no-o, no output, no nothing π-rmodeβ checks for records that are treated as different by DNSSEC but are semantically equal in plain DNS. possible modes arefail,warn, andignore(the default).-sstyleβ specifies the style of the dumped zone file. possible styles arefull(the default) andrelative. thefullformat is most suitable for processing automatically by a separate script π€ therelativeformat is more human-readable and is thus suitable for editing by hand βοΈ-Smodeβ checks whether an SRV record refers to a CNAME. possible modes arefail,warn, andignore(the default).-tdirectoryβ tellsnamedto chroot todirectory, so thatincludedirectives in the configuration file are processed as if run by a similarly chrootednamed. π-Tmodeβ checks whether Sender Policy Framework (SPF) records exist and issues a warning if an SPF-formatted TXT record is not also present. possible modes arewarnandignore(the default). (yes, only two modes for this one, she's different like that π )-wdirectoryβ instructsnamedto chdir todirectory, so that relative filenames in master file$INCLUDEdirectives work. this is similar to thedirectoryclause innamed.conf. π-Dβ dumps the zone file in canonical format. this is always enabled fornamed-compilezone, so like, it's already on, but go off i guess.-Wmodeβ specifies whether to check for non-terminal wildcards. non-terminal wildcards are almost always the result of a failure to understand the wildcard matching algorithm (RFC 4592) π possible modes arewarnandignore(the default).
π the positional besties π
zonenameβ this indicates the domain name of the zone being checked. π·οΈfilenameβ this is the name of the zone file.
β RETURN VALUES β
named-compilezone returns an exit status of 1 if errors were detected, and 0 otherwise. slay or flop, those are the options π«Ά
π₯ SEE ALSO π₯
named(8), named-checkconf(8), named-checkzone(8), RFC 1035, BIND 9 Administrator Reference Manual.
go read them, i know you want to πβ¨
π AUTHOR π
Internet Systems Consortium
πΈ COPYRIGHT πΈ
2026, Internet Systems Consortium
okay that's the whole thing bestie, go compile some zones π this was named-compilezone from the BIND 9 manual, version 9.20.29, dated 2026-09-11. mwah ππ¦β¨
π¦ where this page comes from
- opensuse-leap 16.0: bind-utils 9.20.29-160000.1.1 Β· MPL-2.0
- opensuse-leap 16.0: bind-utils 9.20.29-160000.1.1 Β· MPL-2.0
- opensuse-leap 16.0: bind-utils 9.20.29-160000.1.1 Β· MPL-2.0
- opensuse-leap 16.0: bind-utils 9.20.29-160000.1.1 Β· MPL-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms