dnssec.xml revision 79ce3a9e82384cc31fd6b86be8f3d1474fcfd9f4
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews<?xml version="1.0" encoding="utf-8"?>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews<!--
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - Copyright (C) 2010 Internet Systems Consortium, Inc. ("ISC")
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - Permission to use, copy, modify, and/or distribute this software for any
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - purpose with or without fee is hereby granted, provided that the above
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - copyright notice and this permission notice appear in all copies.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews -
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews - PERFORMANCE OF THIS SOFTWARE.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews-->
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews<!-- $Id: dnssec.xml,v 1.5 2011/06/10 01:51:09 each Exp $ -->
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews<sect1 id="dnssec.dynamic.zones">
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <title>DNSSEC, Dynamic Zones, and Automatic Signing</title>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>As of BIND 9.7.0 it is possible to change a dynamic zone
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews from insecure to signed and back again. A secure zone can use
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews either NSEC or NSEC3 chains.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <title>Converting from insecure to secure</title>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>Changing a zone from insecure to secure can be done in two
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews ways: using a dynamic DNS update, or the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec</command> zone option.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>For either method, you need to configure
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> so that it can see the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <filename>K*</filename> files which contain the public and private
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews parts of the keys that will be used to sign the zone. These files
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews will have been generated by
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>dnssec-keygen</command>. You can do this by placing them
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews in the key-directory, as specified in
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <filename>named.conf</filename>:</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <programlisting>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews zone example.net {
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews type master;
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews update-policy local;
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews file "dynamic/example.net/example.net";
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews key-directory "dynamic/example.net";
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews };
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews</programlisting>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>If one KSK and one ZSK DNSKEY key have been generated, this
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews configuration will cause all records in the zone to be signed
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews with the ZSK, and the DNSKEY RRset to be signed with the KSK as
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews well. An NSEC chain will be generated as part of the initial
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews signing process.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <title>Dynamic DNS update method</title>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>To insert the keys via dynamic update:</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <screen>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews % nsupdate
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; ttl 3600
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; send
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews</screen>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>While the update request will complete almost immediately,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the zone will not be completely signed until
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> has had time to walk the zone and
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews generate the NSEC and RRSIG records. The NSEC record at the apex
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews will be added last, to signal that there is a complete NSEC
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews chain.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>If you wish to sign using NSEC3 instead of NSEC, you should
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews add an NSEC3PARAM record to the initial update request. If you
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews wish the NSEC3 chain to have the OPTOUT bit set, set it in the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews flags field of the NSEC3PARAM record.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <screen>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews % nsupdate
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; ttl 3600
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; update add example.net NSEC3PARAM 1 1 100 1234567890
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews &gt; send
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews</screen>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>Again, this update request will complete almost
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews immediately; however, the record won't show up until
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> has had a chance to build/remove the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews relevant chain. A private type record will be created to record
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the state of the operation (see below for more details), and will
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews be removed once the operation completes.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>While the initial signing and NSEC/NSEC3 chain generation
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews is happening, other updates are possible as well.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <title>Fully automatic zone signing</title>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>To enable automatic signing, add the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec</command> option to the zone statement in
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <filename>named.conf</filename>.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec</command> has two possible arguments:
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <constant>allow</constant> or
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <constant>maintain</constant>.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>With
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec allow</command>,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> can search the key directory for keys
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews matching the zone, insert them into the zone, and use them to
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews sign the zone. It will do so only when it receives an
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>rndc sign &lt;zonename&gt;</command>.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <!-- TODO: this is repeated in the ARM -->
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec maintain</command> includes the above
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews functionality, but will also automatically adjust the zone's
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews DNSKEY records on schedule according to the keys' timing metadata.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews (See <xref linkend="man.dnssec-keygen"/> and
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <xref linkend="man.dnssec-settime"/> for more information.)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> will periodically search the key directory
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews for keys matching the zone, and if the keys' metadata indicates
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews that any change should be made the zone, such as adding, removing,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews or revoking a key, then that action will be carried out. By default,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the key directory is checked for changes every 60 minutes; this period
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews can be adjusted with the <command>dnssec-loadkeys-interval</option>, up
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews to a maximum of 24 hours. The <command>rndc loadkeys</command> forces
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>named</command> to check for key updates immediately.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews If keys are present in the key directory the first time the zone
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews is loaded, the zone will be signed immediately, without waiting for an
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>rndc sign</command> or <command>rndc loadkeys</command>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews command. (Those commands can still be used when there are unscheduled
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews key changes, however.)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <ppara>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews If you wish the zone to be signed using NSEC3 instead of NSEC,
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews submit an NSEC3PARAM record via dynamic update prior to the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews scheduled publication and activation of the keys. If you wish the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews NSEC3 chain to have the OPTOUT bit set, set it in the flags field
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews of the NSEC3PARAM record. The NSEC3PARAM record will not appear in
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the zone immediately, but it will be stored for later reference. When
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the zone is signed and the NSEC3 chain is completed, the NSEC3PARAM
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews record will appear in the zone.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>Using the
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>auto-dnssec</command> option requires the zone to be
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews configured to allow dynamic updates, by adding an
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>allow-update</command> or
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <command>update-policy</command> statement to the zone
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews configuration. If this has not been done, the configuration will
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews fail.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <title>Private-type records</title>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </sect2>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>The state of the signing process is signaled by
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews private-type records (with a default type value of 65534). When
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews signing is complete, these records will have a nonzero value for
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews the final octet (for those records which have a nonzero initial
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews octet).</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>The private type record format: If the first octet is
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews non-zero then the record indicates that the zone needs to be
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews signed with the key matching the record, or that all signatures
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews that match the record should be removed.</para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <para>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews <literallayout>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews<!-- TODO: how to format this? -->
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews algorithm (octet 1)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews key id in network order (octet 2 and 3)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews removal flag (octet 4)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews complete flag (octet 5)
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews</literallayout>
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews </para>
<para>Only records flagged as "complete" can be removed via
dynamic update. Attempts to remove other private type records
will be silently ignored.</para>
<para>If the first octet is zero (this is a reserved algorithm
number that should never appear in a DNSKEY record) then the
record indicates changes to the NSEC3 chains are in progress. The
rest of the record contains an NSEC3PARAM record. The flag field
tells what operation to perform based on the flag bits.</para>
<para>
<literallayout>
<!-- TODO: how to format this? -->
0x01 OPTOUT
0x80 CREATE
0x40 REMOVE
0x20 NONSEC
</literallayout>
</para>
<sect2>
<title>DNSKEY rollovers</title>
</sect2>
<para>As with insecure-to-secure conversions, rolling DNSSEC
keys can be done in two ways: using a dynamic DNS update, or the
<command>auto-dnssec</command> zone option.</para>
<sect2>
<title>Dynamic DNS update method</title>
</sect2>
<para> To perform key rollovers via dynamic update, you need to add
the <filename>K*</filename> files for the new keys so that
<command>named</command> can find them. You can then add the new
DNSKEY RRs via dynamic update.
<command>named</command> will then cause the zone to be signed
with the new keys. When the signing is complete the private type
records will be updated so that the last octet is non
zero.</para>
<para>If this is for a KSK you need to inform the parent and any
trust anchor repositories of the new KSK.</para>
<para>You should then wait for the maximum TTL in the zone before
removing the old DNSKEY. If it is a KSK that is being updated,
you also need to wait for the DS RRset in the parent to be
updated and its TTL to expire. This ensures that all clients will
be able to verify at least one signature when you remove the old
DNSKEY.</para>
<para>The old DNSKEY can be removed via UPDATE. Take care to
specify the correct key.
<command>named</command> will clean out any signatures generated
by the old key after the update completes.</para>
<sect2>
<title>Automatic key rollovers</title>
</sect2>
<para>When a new key reaches its activation date (as set by
<command>dnssec-keygen</command> or <command>dnssec-settime</command>),
if the <command>auto-dnssec</command> zone option is set to
<constant>maintain</constant>, <command>named</command> will
automatically carry out the key rollover. If the key's algorithm
has not previously been used to sign the zone, then the zone will
be fully signed as quickly as possible. However, if the new key
is replacing an existing key of the same algorithm, then the
zone will be re-signed incrementally, with signatures from the
old key being replaced with signatures from the new key as their
signature validity periods expire. By default, this rollover
completes in 30 days, after which it will be safe to remove the
old key from the DNSKEY RRset.</para>
<sect2>
<title>NSEC3PARAM rollovers via UPDATE</title>
</sect2>
<para>Add the new NSEC3PARAM record via dynamic update. When the
new NSEC3 chain has been generated, the NSEC3PARAM flag field
will be zero. At this point you can remove the old NSEC3PARAM
record. The old chain will be removed after the update request
completes.</para>
<sect2>
<title>Converting from NSEC to NSEC3</title>
</sect2>
<para>To do this, you just need to add an NSEC3PARAM record. When
the conversion is complete, the NSEC chain will have been removed
and the NSEC3PARAM record will have a zero flag field. The NSEC3
chain will be generated before the NSEC chain is
destroyed.</para>
<sect2>
<title>Converting from NSEC3 to NSEC</title>
</sect2>
<para>To do this, use <command>nsupdate</command> to
remove all NSEC3PARAM records with a zero flag
field. The NSEC chain will be generated before the NSEC3 chain is
removed.</para>
<sect2>
<title>Converting from secure to insecure</title>
</sect2>
<para>To convert a signed zone to unsigned using dynamic DNS,
delete all the DNSKEY records from the zone apex using
<command>nsupdate</command>. All signatures, NSEC or NSEC3 chains,
and associated NSEC3PARAM records will be removed automatically.
This will take place after the update request completes.</para>
<para> This requires the
<command>dnssec-secure-to-insecure</command> option to be set to
<userinput>yes</userinput> in
<filename>named.conf</filename>.</para>
<para>In addition, if the <command>auto-dnssec maintain</command>
zone statement is used, it should be removed or changed to
<command>allow</command> instead (or it will re-sign).
</para>
<sect2>
<title>Periodic re-signing</title>
</sect2>
<para>In any secure zone which supports dynamic updates, named
will periodically re-sign RRsets which have not been re-signed as
a result of some update action. The signature lifetimes will be
adjusted so as to spread the re-sign load over time rather than
all at once.</para>
<sect2>
<title>NSEC3 and OPTOUT</title>
</sect2>
<para>
<command>named</command> only supports creating new NSEC3 chains
where all the NSEC3 records in the zone have the same OPTOUT
state.
<command>named</command> supports UPDATES to zones where the NSEC3
records in the chain have mixed OPTOUT state.
<command>named</command> does not support changing the OPTOUT
state of an individual NSEC3 record, the entire chain needs to be
changed if the OPTOUT state of an individual NSEC3 needs to be
changed.</para>
</sect1>