NAMED-CHECKZONE(1)
π named-checkzone β the zone file vibe checker π
okay so bestie, welcome to named-checkzone(1) from the BIND 9 fam β this is the zone file validity checking or converting tool, and honestly it's giving backstage-pass energy for your zone files π
β¨ SYNOPSIS β¨
named-checkzone [-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] [-o filename]
[-r mode] [-s style] [-S mode] [-t directory] [-T mode]
[-w directory] [-D] [-W mode] {zonename} {filename}
like, yes, that's a lot of flags. she's high-maintenance and she's worth it π
πΈ DESCRIPTION πΈ
named-checkzone checks the syntax and integrity of a zone file. fr fr β it runs the exact same checks that named does when it loads a zone. which is why this tool is iconic: you can validate your zone files before you configure them into a name server and everything goes sideways at 3am π
π¦ OPTIONS π¦
-dβ turns on debugging. the verbose bestie mode β¨-hβ prints the usage summary and exits. a little "here's how to use me" moment π«Ά-qβ quiet mode: it only sets an exit code to show whether it succeeded or failed. no chatter, just vibes and a number π€«-vβ prints the version of thenamed-checkzoneprogram and exits π-jβ when loading a zone file, this tellsnamedto read the journal if it exists. the journal file name is assumed to be the zone file name with the string.jnlappended. periodt π-Jfilenameβ when loading the zone file, this tellsnamedto read the journal from the given file, if it exists. this implies-jπ-cclassβ specifies the class of the zone. if you don't specify it,INis assumed π-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:fail.
-imodeβ performs post-load zone integrity checks. possible modes arefull(the default),full-sibling,local,local-sibling, andnone. ngl this one's a whole saga, so buckle up:- 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. π§
- mode
-fformatβ specifies the format of the zone file. possible formats aretext(the default) andrawπ₯-Fformatβ specifies the format of the output file specified. 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β performs check-names checks with the specified failure mode. possible modes arefail,warn(the default), andignoreπ«-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. this is 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(the default), andignoreπ¬-Mmodeβ checks whether a MX record refers to a CNAME. possible modes arefail,warn(the default), andignoreπ-nmodeβ specifies whether NS records should be checked to see if they are addresses. possible modes arefail,warn(the default), andignoreπ-ofilenameβ writes the zone output tofilename. iffilenameis-, then the zone output is written to standard output π-rmodeβ checks for records that are treated as different by DNSSEC but are semantically equal in plain DNS. possible modes arefail,warn(the default), andignoreπͺ-sstyleβ specifies the style of the dumped zone file. possible styles arefull(the default) andrelative.- the
fullformat is most suitable for processing automatically by a separate script. - the
relativeformat is more human-readable and is thus suitable for editing by hand. - this does not have any effect unless it dumps the zone contents. it also does not have any meaning if the output format is not
text. βοΈ
- the
-Smodeβ checks whether an SRV record refers to a CNAME. possible modes arefail,warn(the default), andignoreπ―-tdirectoryβ tellsnamedtochroottodirectory, so thatincludedirectives in the configuration file are processed as if run by a similarly chrootednamed. lowkey a jail cell for your files π-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 arewarn(the default) andignoreπ¨-wdirectoryβ instructsnamedtochdirtodirectory, so that relative filenames in master file$INCLUDEdirectives work. this is similar to thedirectoryclause innamed.confπ-Dβ dumps the zone file in canonical format π-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 arewarn(the default) andignore. no cap, read RFC 4592 πzonenameβ the domain name of the zone being checked πfilenameβ the name of the zone file ποΈ
π«Ά RETURN VALUES π«Ά
named-checkzone returns an exit status of 1 if errors were detected and 0 otherwise. so basically 0 = slay, 1 = π
π SEE ALSO π
named(8)named-checkconf(8)named-compilezone(8)- RFC 1035
- BIND 9 Administrator Reference Manual
π Author
Internet Systems Consortium
π Copyright
2026, Internet Systems Consortium
and that's the tea, bestie π¦ this page is from BIND 9.20.30, dated 2026-10-12 β go forth and validate your zones, mwah π
π¦ where this page comes from
- alpine 3.22: bind-doc 9.20.30-r0 Β· MPL-2.0
- alpine 3.23: bind-doc 9.20.30-r0 Β· MPL-2.0
- alpine 3.24: bind-doc 9.20.30-r0 Β· MPL-2.0
- nixos 26.05: bind 9.20.30
- nixpkgs unstable: bind 9.20.30
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms