NAMED-COMPILEZONE(1) BIND 9 NAMED-COMPILEZONE(1)

# [NAME](#NAME)

named-compilezone - zone file validity checking or converting tool

# [SYNOPSIS](#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](#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** &lt;#std-iscman-named&gt;, then the check levels should be manually configured to be at least as strict as those specified in the **named** &lt;#std-iscman-named&gt; configuration file.

Running **named-checkzone** on the input prior to compiling will ensure that the zone compiles with the default requirements of **named** &lt;#std-iscman-named&gt;.

# [OPTIONS](#OPTIONS)

[**-d**](#d)

This option enables debugging.

[**-h**](#h)

This option prints the usage summary and exits.

[**-q**](#q)

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

[**-v**](#v)

This option prints the version of the **named-checkzone** &lt;#std-iscman-named-checkzone&gt; program and exits.

[**-j**](#j)

When loading a zone file, this option tells **named** &lt;#std-iscman-named&gt; 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**](#J)

When loading the zone file, this option tells **named** &lt;#std-iscman-named&gt; to read the journal from the given file, if it exists. This implies **-j**.

[**-c class**](#c)

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

[**-C mode**](#C)

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**](#i)

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**](#f)

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

[**-F format**](#F)

This option specifies the format of the output file specified. For **named-checkzone** &lt;#std-iscman-named-checkzone&gt;, 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** &lt;#std-iscman-named&gt;. **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** &lt;#std-iscman-named&gt;; if N is 1, the file can only be read by release 9.9.0 or higher. The default is 1.

[**-k mode**](#k)

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

[**-l ttl**](#l)

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** &lt;#std-iscman-named.conf&gt;.

[**-L serial**](#L)

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**](#m)

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**](#M)

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

[**-n mode**](#n)

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**](#o)

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**](#r)

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**](#s)

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**](#S)

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

[**-t directory**](#t)

This option tells **named** &lt;#std-iscman-named&gt; to chroot to **directory**, so that **include** directives in the configuration file are processed as if run by a similarly chrooted **named** &lt;#std-iscman-named&gt;.

[**-T mode**](#T)

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**](#w)

This option instructs **named** &lt;#std-iscman-named&gt; to chdir to **directory**, so that relative filenames in master file **$INCLUDE** directives work. This is similar to the directory clause in **named.conf** &lt;#std-iscman-named.conf&gt;.

[**-D**](#D)

This option dumps the zone file in canonical format. This is always enabled for **named-compilezone**.

[**-W mode**](#W)

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** &lt;https://datatracker.ietf.org/doc/html/rfc4592.html&gt;). Possible modes are **warn** and **ignore** (the default).

[**zonename**](#zonename)

This indicates the domain name of the zone being checked.

[**filename**](#filename)

This is the name of the zone file.

# [RETURN VALUES](#RETURN_VALUES)

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

# [SEE ALSO](#SEE_ALSO)

[**named(8)**](/man/os/bind/named.8) &lt;#std-iscman-named&gt;, [**named-checkconf(8)**](/man/os/bind/named-checkconf.8) &lt;#std-iscman-named-checkconf&gt;, [**named-checkzone(8)**](/man/os/bind/named-checkzone.8) &lt;#std-iscman-named-checkzone&gt;, **RFC 1035** &lt;https://datatracker.ietf.org/doc/html/rfc1035.html&gt;, BIND 9 Administrator Reference Manual.

# [Author](#Author)

Internet Systems Consortium

# [Copyright](#Copyright)

2026, Internet Systems Consortium

2026-11-05 9.20.30

---

Document: named-compilezone(1) from bind 9.20.30-r1 (Chainguard OS)
Source: https://gitlab.isc.org/isc-projects/bind9.git
