Bv9ARM.ch04.html revision 408e9e235a69e541a229c73063e2caa658d7b58a
b0e8629055a766d4555a005a283c2889a5974945Mark Andrews - Copyright (C) 2004-2015 Internet Systems Consortium, Inc. ("ISC")
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews - Copyright (C) 2000-2003 Internet Software Consortium.
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater - Permission to use, copy, modify, and/or distribute this software for any
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - purpose with or without fee is hereby granted, provided that the above
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson - copyright notice and this permission notice appear in all copies.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews - PERFORMANCE OF THIS SOFTWARE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<link rel="home" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<link rel="up" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<link rel="prev" href="Bv9ARM.ch03.html" title="Chapter�3.�Name Server Configuration">
4abdfc917e6635a7c81d1f931a0c79227e72d025Mark Andrews<link rel="next" href="Bv9ARM.ch05.html" title="Chapter�5.�The BIND 9 Lightweight Resolver">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<tr><th colspan="3" align="center">Chapter�4.�Advanced DNS Features</th></tr>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a accesskey="p" href="Bv9ARM.ch03.html">Prev</a>�</td>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<td width="20%" align="right">�<a accesskey="n" href="Bv9ARM.ch05.html">Next</a>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="titlepage"><div><div><h1 class="title">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="Bv9ARM.ch04"></a>Chapter�4.�Advanced DNS Features</h1></div></div></div>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#notify">Notify</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dd><dl><dt><span class="section"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#split_dns">Split DNS</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dd><dl><dt><span class="section"><a href="Bv9ARM.ch04.html#split_dns_sample">Example split DNS setup</a></span></dt></dl></dd>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.6.5">Generating a Shared Key</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.6.6">Loading A New Key</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.6.7">Instructing the Server to Use a Key</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.6.8">TSIG-Based Access Control</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.6.9">Errors</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#tkey">TKEY</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#sig0">SIG(0)</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#dnssec_keys">Generating Keys</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#dnssec_signing">Signing the Zone</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#dnssec_config">Configuring Servers</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.3">Converting from insecure to secure</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.8">Dynamic DNS update method</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.16">Fully automatic zone signing</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.25">Private-type records</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.32">DNSKEY rollovers</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.34">Dynamic DNS update method</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.39">Automatic key rollovers</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.41">NSEC3PARAM rollovers via UPDATE</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.43">Converting from NSEC to NSEC3</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.45">Converting from NSEC3 to NSEC</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.47">Converting from secure to insecure</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.51">Periodic re-signing</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.10.53">NSEC3 and OPTOUT</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.11.3">Validating Resolver</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.11.4">Authoritative Server</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#pkcs11">PKCS#11 (Cryptoki) support</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.6">Prerequisites</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.7">Native PKCS#11</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.8">OpenSSL-based PKCS#11</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.9">PKCS#11 Tools</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.10">Using the HSM</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.11">Specifying the engine on the command line</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.12.12">Running named with automatic zone re-signing</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#dlz-info">DLZ (Dynamically Loadable Zones)</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.13.6">Configuring DLZ</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.13.7">Sample DLZ Driver</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#dyndb-info">DynDB (Dynamic Database)</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.14.5">Configuring DynDB</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.14.6">Sample DynDB Module</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#catz-info">Catalog Zones</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.15.4">Principle of Operation</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.15.5">Configuring Catalog Zones</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.15.6">Catalog Zone format</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#ipv6">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.16.6">Address Lookups Using AAAA Records</a></span></dt>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<dt><span class="section"><a href="Bv9ARM.ch04.html#id-1.5.16.7">Address to Name Lookups Using Nibble Format</a></span></dt>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="titlepage"><div><div><h2 class="title" style="clear: both">
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<a name="notify"></a>Notify</h2></div></div></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <acronym class="acronym">DNS</acronym> NOTIFY is a mechanism that allows master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein servers to notify their slave servers of changes to a zone's data. In
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein response to a <span class="command"><strong>NOTIFY</strong></span> from a master server, the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein slave will check to see that its version of the zone is the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein current version and, if not, initiate a zone transfer.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein For more information about <acronym class="acronym">DNS</acronym>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <span class="command"><strong>NOTIFY</strong></span>, see the description of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>notify</strong></span> option in <a class="xref" href="Bv9ARM.ch06.html#boolean_options" title="Boolean Options">the section called “Boolean Options”</a> and
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the description of the zone option <span class="command"><strong>also-notify</strong></span> in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <a class="xref" href="Bv9ARM.ch06.html#zone_transfers" title="Zone Transfers">the section called “Zone Transfers”</a>. The <span class="command"><strong>NOTIFY</strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein protocol is specified in RFC 1996.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein As a slave zone can also be a master to other slaves, <span class="command"><strong>named</strong></span>,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein by default, sends <span class="command"><strong>NOTIFY</strong></span> messages for every zone
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews it loads. Specifying <span class="command"><strong>notify master-only;</strong></span> will
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein cause <span class="command"><strong>named</strong></span> to only send <span class="command"><strong>NOTIFY</strong></span> for master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein zones that it loads.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<div class="titlepage"><div><div><h2 class="title" style="clear: both">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="dynamic_update"></a>Dynamic Update</h2></div></div></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Dynamic Update is a method for adding, replacing or deleting
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein records in a master server by sending it a special form of DNS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein messages. The format and meaning of these messages is specified
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews in RFC 2136.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Dynamic update is enabled by including an
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>allow-update</strong></span> or an <span class="command"><strong>update-policy</strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein clause in the <span class="command"><strong>zone</strong></span> statement.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein If the zone's <span class="command"><strong>update-policy</strong></span> is set to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <strong class="userinput"><code>local</code></strong>, updates to the zone
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein will be permitted for the key <code class="varname">local-ddns</code>,
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews which will be generated by <span class="command"><strong>named</strong></span> at startup.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein See <a class="xref" href="Bv9ARM.ch06.html#dynamic_update_policies" title="Dynamic Update Policies">the section called “Dynamic Update Policies”</a> for more details.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews Dynamic updates using Kerberos signed requests can be made
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein using the TKEY/GSS protocol by setting either the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>tkey-gssapi-keytab</strong></span> option, or alternatively
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews by setting both the <span class="command"><strong>tkey-gssapi-credential</strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein and <span class="command"><strong>tkey-domain</strong></span> options. Once enabled,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Kerberos signed requests will be matched against the update
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein policies for the zone, using the Kerberos principal as the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein signer for the request.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Updating of secure zones (zones using DNSSEC) follows RFC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 3007: RRSIG, NSEC and NSEC3 records affected by updates are
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein automatically regenerated by the server using an online
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein zone key. Update authorization is based on transaction
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein signatures and an explicit server policy.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="titlepage"><div><div><h3 class="title">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="journal"></a>The journal file</h3></div></div></div>
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews All changes made to a zone using dynamic update are stored
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein in the zone's journal file. This file is automatically created
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein by the server when the first dynamic update takes place.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The name of the journal file is formed by appending the extension
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <code class="filename">.jnl</code> to the name of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein corresponding zone
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein file unless specifically overridden. The journal file is in a
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews binary format and should not be edited manually.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The server will also occasionally write ("dump")
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the complete contents of the updated zone to its zone file.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This is not done immediately after
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews each dynamic update, because that would be too slow when a large
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein zone is updated frequently. Instead, the dump is delayed by
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein up to 15 minutes, allowing additional updates to take place.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein During the dump process, transient files will be created
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein with the extensions <code class="filename">.jnw</code> and
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="filename">.jbk</code>; under ordinary circumstances, these
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews will be removed when the dump is complete, and can be safely
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein When a server is restarted after a shutdown or crash, it will replay
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the journal file to incorporate into the zone any updates that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein place after the last zone dump.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews Changes that result from incoming incremental zone transfers are
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein journalled in a similar way.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The zone files of dynamic zones cannot normally be edited by
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews hand because they are not guaranteed to contain the most recent
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein dynamic changes — those are only in the journal file.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The only way to ensure that the zone file of a dynamic zone
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein is up to date is to run <span class="command"><strong>rndc stop</strong></span>.
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews If you have to make changes to a dynamic zone
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein manually, the following procedure will work:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Disable dynamic updates to the zone using
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>rndc freeze <em class="replaceable"><code>zone</code></em></strong></span>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This will update the zone's master file with the changes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein stored in its <code class="filename">.jnl</code> file.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Edit the zone file. Run
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>rndc thaw <em class="replaceable"><code>zone</code></em></strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to reload the changed zone and re-enable dynamic updates.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>rndc sync <em class="replaceable"><code>zone</code></em></strong></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein will update the zone file with changes from the journal file
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein without stopping dynamic updates; this may be useful for viewing
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the current zone state. To remove the <code class="filename">.jnl</code>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein file after updating the zone file, use
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews <span class="command"><strong>rndc sync -clean</strong></span>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="titlepage"><div><div><h2 class="title" style="clear: both">
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews<a name="incremental_zone_transfers"></a>Incremental Zone Transfers (IXFR)</h2></div></div></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The incremental zone transfer (IXFR) protocol is a way for
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein slave servers to transfer only changed data, instead of having to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein transfer the entire zone. The IXFR protocol is specified in RFC
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein 1995. See <a class="xref" href="Bv9ARM.ch11.html#proposed_standards" title="Proposed Standards">Proposed Standards</a>.
b0e8629055a766d4555a005a283c2889a5974945Mark Andrews When acting as a master, <acronym class="acronym">BIND</acronym> 9
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein supports IXFR for those zones
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein where the necessary change history information is available. These
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein include master zones maintained by dynamic update and slave zones
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein whose data was obtained by IXFR. For manually maintained master
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein zones, and for slave zones obtained by performing a full zone
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein transfer (AXFR), IXFR is supported only if the option
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="command"><strong>ixfr-from-differences</strong></span> is set
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to <strong class="userinput"><code>yes</code></strong>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein When acting as a slave, <acronym class="acronym">BIND</acronym> 9 will
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein attempt to use IXFR unless
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein it is explicitly disabled. For more information about disabling
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein IXFR, see the description of the <span class="command"><strong>request-ixfr</strong></span> clause
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein of the <span class="command"><strong>server</strong></span> statement.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="titlepage"><div><div><h2 class="title" style="clear: both">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<a name="split_dns"></a>Split DNS</h2></div></div></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Setting up different views, or visibility, of the DNS space to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein internal and external resolvers is usually referred to as a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <span class="emphasis"><em>Split DNS</em></span> setup. There are several
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein reasons an organization would want to set up its DNS this way.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein One common reason for setting up a DNS system this way is
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to hide "internal" DNS information from "external" clients on the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Internet. There is some debate as to whether or not this is actually
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Internal DNS information leaks out in many ways (via email headers,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for example) and most savvy "attackers" can find the information
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein they need using other means.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein However, since listing addresses of internal servers that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein external clients cannot possibly reach can result in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein connection delays and other annoyances, an organization may
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein choose to use a Split DNS to present a consistent view of itself
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to the outside world.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Another common reason for setting up a Split DNS system is
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to allow internal networks that are behind filters or in RFC 1918
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein space (reserved IP space, as documented in RFC 1918) to resolve DNS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein on the Internet. Split DNS can also be used to allow mail from outside
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson back in to the internal network.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<div class="titlepage"><div><div><h3 class="title">
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson<a name="split_dns_sample"></a>Example split DNS setup</h3></div></div></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Let's say a company named <span class="emphasis"><em>Example, Inc.</em></span>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein has several corporate sites that have an internal network with
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson Internet Protocol (IP) space and an external demilitarized zone (DMZ),
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson or "outside" section of a network, that is available to the public.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson <span class="emphasis"><em>Example, Inc.</em></span> wants its internal clients
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to be able to resolve external hostnames and to exchange mail with
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein people on the outside. The company also wants its internal resolvers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to have access to certain internal-only zones that are not available
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein at all outside of the internal network.
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson In order to accomplish this, the company will set up two sets
ddccd5811feff696ba460dabfb666ce61040f545Andreas Gustafsson of name servers. One set will be on the inside network (in the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein IP space) and the other set will be on bastion hosts, which are
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein hosts that can talk to both sides of its network, in the DMZ.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The internal servers will be configured to forward all queries,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein except queries for <code class="filename">site1.internal</code>, <code class="filename">site2.internal</code>, <code class="filename">site1.example.com</code>,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein and <code class="filename">site2.example.com</code>, to the servers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein DMZ. These internal servers will have complete sets of information
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for <code class="filename">site1.example.com</code>, <code class="filename">site2.example.com</code>, <code class="filename">site1.internal</code>,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein and <code class="filename">site2.internal</code>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein To protect the <code class="filename">site1.internal</code> and <code class="filename">site2.internal</code> domains,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the internal name servers must be configured to disallow all queries
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to these domains from any external hosts, including the bastion
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein The external servers, which are on the bastion hosts, will
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein be configured to serve the "public" version of the <code class="filename">site1</code> and <code class="filename">site2.example.com</code> zones.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein This could include things such as the host records for public servers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein (<code class="filename">www.example.com</code> and <code class="filename">ftp.example.com</code>),
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein and mail exchange (MX) records (<code class="filename">a.mx.example.com</code> and <code class="filename">b.mx.example.com</code>).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein In addition, the public <code class="filename">site1</code> and <code class="filename">site2.example.com</code> zones
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein should have special MX records that contain wildcard (`*') records
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pointing to the bastion hosts. This is needed because external mail
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein servers do not have any other way of looking up how to deliver mail
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to those internal hosts. With the wildcard records, the mail will
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein be delivered to the bastion host, which can then forward it on to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein internal hosts.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Here's an example of a wildcard MX record:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<pre class="programlisting">* IN MX 10 external1.example.com.</pre>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Now that they accept mail on behalf of anything in the internal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein network, the bastion hosts will need to know how to deliver mail
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein to internal hosts. In order for this to work properly, the resolvers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein the bastion hosts will need to be configured to point to the internal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein name servers for DNS resolution.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Queries for internal hostnames will be answered by the internal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein servers, and queries for external hostnames will be forwarded back
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein out to the DNS servers on the bastion hosts.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein In order for all this to work properly, internal clients will
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein need to be configured to query <span class="emphasis"><em>only</em></span> the internal
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein name servers for DNS queries. This could also be enforced via
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein filtering on the network.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein If everything has been set properly, <span class="emphasis"><em>Example, Inc.</em></span>'s
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein internal clients will now be able to:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Look up any hostnames in the <code class="literal">site1</code>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="literal">site2.example.com</code> zones.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Look up any hostnames in the <code class="literal">site1.internal</code> and
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="literal">site2.internal</code> domains.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<li class="listitem">Look up any hostnames on the Internet.</li>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<li class="listitem">Exchange mail with both internal and external people.</li>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Hosts on the Internet will be able to:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Look up any hostnames in the <code class="literal">site1</code>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="literal">site2.example.com</code> zones.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Exchange mail with anyone in the <code class="literal">site1</code> and
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="literal">site2.example.com</code> zones.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Here is an example configuration for the setup we just
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein described above. Note that this is only configuration information;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein for information on how to configure your zone files, see <a class="xref" href="Bv9ARM.ch03.html#sample_configuration" title="Sample Configurations">the section called “Sample Configurations”</a>.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Internal DNS server config:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinacl internals { 172.16.72.0/24; 192.168.1.0/24; };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinacl externals { <code class="varname">bastion-ips-go-here</code>; };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein forward only;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // forward to external servers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein forwarders {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein <code class="varname">bastion-ips-go-here</code>;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // sample allow-transfer (no one)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein allow-transfer { none; };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // restrict query access
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein allow-query { internals; externals; };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // restrict recursion
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein allow-recursion { internals; };
zone "site1.example.com" {
zone "site2.example.com" {
zone "site1.internal" {
zone "site2.internal" {
zone "site1.example.com" {
zone "site2.example.com" {
certain server functions (e.g., recursive queries) to authorized
<a class="xref" href="man.nsupdate.html" title="nsupdate"><span class="refentrytitle"><span class="application">nsupdate</span></span>(1)</a> supports TSIG via the
<a class="xref" href="man.dig.html" title="dig"><span class="refentrytitle">dig</span>(1)</a> supports TSIG via the
$ tsig-keygen host1-host2. > host1-host2.key
<span class="command"><strong>named</strong></span>. See <a class="xref" href="man.ddns-confgen.html" title="ddns-confgen"><span class="refentrytitle"><span class="application">ddns-confgen</span></span>(8)</a>
cause <span class="emphasis"><em>all</em></span> requests from <span class="emphasis"><em>host1</em></span>
Requests sent by <span class="emphasis"><em>host2</em></span> to <span class="emphasis"><em>host1</em></span>
<span class="command"><strong>server</strong></span> directive were in <span class="emphasis"><em>host2</em></span>'s
such as <span class="command"><strong>allow-query</strong></span>, <span class="command"><strong>allow-transfer</strong></span>
See <a class="xref" href="Bv9ARM.ch06.html#dynamic_update_policies" title="Dynamic Update Policies">the section called “Dynamic Update Policies”</a> for a discussion of
that the tools shipped with BIND 9.2.x and earlier are not compatible
<strong class="userinput"><code>dnssec-keygen -a RSASHA1 -b 768 -n ZONE child.example.</code></strong>
<strong class="userinput"><code>yes</code></strong> or <strong class="userinput"><code>auto</code></strong>.
example.com. 257 3 5 "AwEAAaxPMcR2x0HbQV4WeZB6oEDX+r0QM6
<a name="dnssec.dynamic.zones"></a>DNSSEC, Dynamic Zones, and Automatic Signing</h2></div></div></div>
zone example.net {
> update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
> update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
> update add example.net DNSKEY 256 3 7 AwEAAZn17pUF0KpbPA2c7Gz76Vb18v0teKT3EyAGfBfL8eQ8al35zz3Y I1m/SAQBxIqMfLtIwqWPdgthsu36azGQAX8=
> update add example.net DNSKEY 257 3 7 AwEAAd/7odU/64o2LGsifbLtQmtO8dFDtTAZXSX2+X3e/UNlq9IHq3Y0 XtC0Iuawl/qkaKVxXe2lo8Ct+dM6UehyCqk=
> update add example.net NSEC3PARAM 1 1 100 1234567890
(See <a class="xref" href="man.dnssec-keygen.html" title="dnssec-keygen"><span class="refentrytitle"><span class="application">dnssec-keygen</span></span>(8)</a> and
<a class="xref" href="man.dnssec-settime.html" title="dnssec-settime"><span class="refentrytitle"><span class="application">dnssec-settime</span></span>(8)</a> for more information.)
<span class="command"><strong>rndc sign</strong></span> or <span class="command"><strong>rndc loadkeys</strong></span>
<span class="command"><strong>dnssec-keygen</strong></span> or <span class="command"><strong>dnssec-settime</strong></span>),
<p>In any secure zone which supports dynamic updates, <span class="command"><strong>named</strong></span>
<a class="xref" href="Bv9ARM.ch06.html#managed-keys" title="managed-keys Statement Definition and Usage">the section called “<span class="command"><strong>managed-keys</strong></span> Statement Definition
$ <strong class="userinput"><code>dnssec-keygen -K keys -f KSK -P now -A now+2y example.net</code></strong>
and the <span class="command"><strong>dnssec-*</strong></span> and <span class="command"><strong>pkcs11-*</strong></span>
<span class="command"><strong>dnssec-*</strong></span> tools, or the <code class="option">-m</code> in
$ <strong class="userinput"><code> configure --with-crypto-backend=openssl --prefix=/opt/pkcs11/usr --enable-gost </code></strong>
$ <strong class="userinput"><code> /opt/pkcs11/usr/bin/softhsm-util --init-token 0 --slot 0 --label softhsmv2 </code></strong>
$ <strong class="userinput"><code>wget <a class="link" href="" target="_top">http://www.openssl.org/source/openssl-0.9.8zc.tar.gz</a></code></strong>
$ <strong class="userinput"><code>cp pkcs11.GCC4.0.2.so.4.05 /opt/pkcs11/usr/lib/libpkcs11.so</code></strong>
and "<span class="command"><strong>make test</strong></span>". If "<span class="command"><strong>make
$ <strong class="userinput"><code> echo "0:/opt/pkcs11/softhsm.db" > $SOFTHSM_CONF </code></strong>
$ <strong class="userinput"><code> /opt/pkcs11/usr/bin/softhsm --init-token 0 --slot 0 --label softhsm </code></strong>
<span class="quote">“<span class="quote"><code class="literal">[ available ]</code></span>”</span>.
<a name="id-1.5.12.8.18"></a>Configuring BIND 9 for Linux with the AEP Keyper</h4></div></div></div>
<a name="id-1.5.12.8.19"></a>Configuring BIND 9 for Solaris with the SCA 6000</h4></div></div></div>
$ <strong class="userinput"><code>export LD_LIBRARY_PATH=/opt/pkcs11/usr/lib:${LD_LIBRARY_PATH}</code></strong>
$ <strong class="userinput"><code>export KEYPER_LIBRARY_PATH=/opt/Keyper/PKCS11Provider</code></strong>
"sample-ksk" as the key-signing key for "example.net":
$ <strong class="userinput"><code>dnssec-keyfromlabel -l sample-ksk -f KSK example.net</code></strong>
<a class="xref" href="man.dnssec-keyfromlabel.html" title="dnssec-keyfromlabel"><span class="refentrytitle"><span class="application">dnssec-keyfromlabel</span></span>(8)</a> for details.)
then <span class="command"><strong>named</strong></span> must have access to the HSM PIN. In OpenSSL-based PKCS#11,
this is accomplished by placing the PIN into the openssl.cnf file
The location of the openssl.cnf file can be overridden by
Historically, DLZ drivers had to be statically linked with the <span class="command"><strong>named</strong></span>
"dlopen" driver is linked into <span class="command"><strong>named</strong></span> by default, so configure options
When the DLZ module provides data to <span class="command"><strong>named</strong></span>, it does so in text format.
The response is converted to DNS wire format by <span class="command"><strong>named</strong></span>. This
dynamically-linkable DLZ module--i.e., one which can be
"example.nil", which can answer queries and AXFR requests, and
example.nil. 1800 IN A 10.53.0.1
e.g., by providing different address records for a particular name
(see <a class="xref" href="Bv9ARM.ch04.html#dlz-info" title="DLZ (Dynamically Loadable Zones)">the section called “DLZ (Dynamically Loadable Zones)”</a>), allows zone data to be
<a class="link" href="https://fedorahosted.org/bind-dyndb-ldap/" target="_top">https://fedorahosted.org/bind-dyndb-ldap/</a>.
dyndb example "driver.so" {
"example.nil", which can answer queries and AXFR requests, and
example.nil. 86400 IN A 127.0.0.1
whether the updated RR is an address (i.e., type A or AAAA) and if
zone "catalog.example"
means <span class="command"><strong>rndc addzone</strong></span> and <span class="command"><strong>rndc delzone</strong></span>
catalog.example. IN SOA . . 2016022901 900 600 86400 1
catalog.example. IN NS nsexample.
version.catalog.example. IN TXT "1"
masters.catalog.example IN A 192.0.2.1
masters.catalog.example IN AAAA 2001:db8::1
masters.5960775ba382e7a4e09263fc06e7c00569b6a05c.zones.catalog.example IN AAAA 2001:db8::2
see <a class="xref" href="Bv9ARM.ch11.html#ipv6addresses" title="IPv6 addresses (AAAA)">the section called “IPv6 addresses (AAAA)”</a>.
$ORIGIN example.com.