NAMED-COMPILEZONE(1)

NAME
named-compilezone - zone file validity checking or 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}

DESCRIPTION

named-compilezone checks the syntax and integrity of a zone file, and dumps the zone contents to a specified file in a specified format.

Unlike named-checkzone, zone contents are not strictly checked by default. If the output is to be used as an actual zone file to be loaded by named <#std-iscman-named>, then the check levels should be manually configured to be at least as strict as those specified in the named <#std-iscman-named> configuration file.

Running named-checkzone on the input prior to compiling will ensure that the zone compiles with the default requirements of named <#std-iscman-named>.

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 <#std-iscman-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.

-C mode
    This option controls check mode on zone files when loading. Possible modes are check-svcb:fail and check-svcb:ignore.

    check-svcb:fail turns on additional checks on _dns SVCB records and check-svcb:ignore disables these checks. The default is check-svcb:ignore.

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

    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 <#std-iscman-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, and ignore (the default).

-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, and ignore (the default).

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

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

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

-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, and ignore (the default).

-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.

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

-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 and ignore (the default).

-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. This is always enabled for named-compilezone.

-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 and ignore (the default).

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.

SEE ALSO

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

Author
Internet Systems Consortium

Copyright
2026, Internet Systems Consortium