NAMED-CHECKZONE(1)

NAME
named-checkzone - zone file validity checking or converting tool

SYNOPSIS

named-checkzone [-d] [-h] [-j] [-q] [-v] [-c class] [-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}

DESCRIPTION

named-checkzone checks the syntax and integrity of a zone file. It performs the same checks as named <#std-iscman-named> does when loading a zone. This makes named-checkzone useful for checking zone files before configuring them into a name server.

OPTIONS

-d  This option enables debugging.

-h  This option prints the usage summary and exits.

-q  This option sets quiet mode, which only sets an exit code to indicate successful or failed completion.

-v  This option prints the version of the named-checkzone program and exits.

-j  When loading a zone file, this option tells named <#std-iscman-named> to read the journal if it exists. The journal file name is assumed to be the zone file name with the string .jnl appended.

-J filename
    When loading the zone file, this option tells named <#std-iscman-named> to read the journal from the given file, if it exists. This implies -j.

-c class
    This option specifies the class of the zone. If not specified, IN is assumed.

-i mode
    This option performs post-load zone integrity checks. Possible modes are full (the default), full-sibling, local, local-sibling, and none.

    Mode full checks that MX records refer to A or AAAA records (both in-zone and out-of-zone hostnames). Mode local only checks MX records which refer to in-zone hostnames.

    Mode full checks that SRV records refer to A or AAAA records (both in-zone and out-of-zone hostnames). Mode local only checks SRV records which refer to in-zone hostnames.

    Mode full checks 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. Mode local only 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-sibling and local-sibling disable sibling glue checks, but are otherwise the same as full and local, respectively.

    Mode none disables the checks.

-f format
    This option specifies the format of the zone file. Possible formats are text (the default), and raw.

-F format
    This option specifies the format of the output file specified. For named-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, and raw and raw=N, which store the zone in a binary format for rapid loading by named <#std-iscman-named>. raw=N specifies the format version of the raw zone file: if N is 0, the raw file can be read by any version of named <#std-iscman-named>; if N is 1, the file can only be read by release 9.9.0 or higher. The default is 1.

-k mode
    This option performs check-names checks with the specified failure mode. Possible modes are fail, warn (the default), and ignore.

-l ttl
    This option 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 the max-zone-ttl option in named.conf <#std-iscman-named.conf>.

-L serial
    When compiling a zone to raw format, this option sets the "source serial" value in the header to the specified serial number. This is expected to be used primarily for testing purposes.

-m mode
    This option specifies whether MX records should be checked to see if they are addresses. Possible modes are fail, warn (the default), and ignore.

-M mode
    This option checks whether a MX record refers to a CNAME. Possible modes are fail, warn (the default), and ignore.

-n mode
    This option specifies whether NS records should be checked to see if they are addresses. Possible modes are fail, warn (the default), and ignore.

-o filename
    This option writes the zone output to filename. If filename is -, then the zone output is written to standard output.

-r mode
    This option checks for records that are treated as different by DNSSEC but are semantically equal in plain DNS. Possible modes are fail, warn (the default), and ignore.

-s style
    This option specifies the style of the dumped zone file. Possible styles are full (the default) and relative. The full format is most suitable for processing automatically by a separate script. The relative format 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.

-S mode
    This option checks whether an SRV record refers to a CNAME. Possible modes are fail, warn (the default), and ignore.

-t directory
    This option tells named <#std-iscman-named> to chroot to directory, so that include directives in the configuration file are processed as if run by a similarly chrooted named <#std-iscman-named>.

-T mode
    This option checks whether Sender Policy Framework (SPF) records exist and issues a warning if an SPF-formatted TXT record is not also present. Possible modes are warn (the default) and ignore.

-w directory
    This option instructs named <#std-iscman-named> to chdir to directory, so that relative filenames in master file $INCLUDE directives work. This is similar to the directory clause in named.conf <#std-iscman-named.conf>.

-D  This option dumps the zone file in canonical format.

-W mode
    This option 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 <https://datatracker.ietf.org/doc/html/rfc4592.html>). Possible modes are warn (the default) and ignore.

zonename
    This indicates the domain name of the zone being checked.

filename
    This is the name of the zone file.

RETURN VALUES

named-checkzone returns an exit status of 1 if errors were detected and 0 otherwise.

SEE ALSO

named(8) <#std-iscman-named>, named-checkconf(8) <#std-iscman-named-checkconf>, named-compilezone(8) <#std-iscman-named-compilezone>, RFC 1035 <https://datatracker.ietf.org/doc/html/rfc1035.html>, BIND 9 Administrator Reference Manual.

Author
Internet Systems Consortium

Copyright
2026, Internet Systems Consortium