Bv9ARM.ch04.html revision db6353c9b89628e16f6e729ce57baabad3460c49
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - Copyright (C) 2004-2011 Internet Systems Consortium, Inc. ("ISC")
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - Copyright (C) 2000-2003 Internet Software Consortium.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - Permission to use, copy, modify, and/or distribute this software for any
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - purpose with or without fee is hereby granted, provided that the above
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - copyright notice and this permission notice appear in all copies.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi - PERFORMANCE OF THIS SOFTWARE.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe<!-- $Id: Bv9ARM.ch04.html,v 1.130 2011/04/30 01:14:42 tbox Exp $ -->
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<meta name="generator" content="DocBook XSL Stylesheets V1.71.1">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<link rel="start" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<link rel="up" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<link rel="prev" href="Bv9ARM.ch03.html" title="Chapter�3.�Name Server Configuration">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<link rel="next" href="Bv9ARM.ch05.html" title="Chapter�5.�The BIND 9 Lightweight Resolver">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<table width="100%" summary="Navigation header">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<tr><th colspan="3" align="center">Chapter�4.�Advanced DNS Features</th></tr>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a accesskey="p" href="Bv9ARM.ch03.html">Prev</a>�</td>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<td width="20%" align="right">�<a accesskey="n" href="Bv9ARM.ch05.html">Next</a>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h2 class="title">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="Bv9ARM.ch04"></a>Chapter�4.�Advanced DNS Features</h2></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#notify">Notify</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dynamic_update">Dynamic Update</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#journal">The journal file</a></span></dt></dl></dd>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#incremental_zone_transfers">Incremental Zone Transfers (IXFR)</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2564025">Split DNS</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dd><dl><dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2564043">Example split DNS setup</a></span></dt></dl></dd>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#tsig">TSIG</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571644">Generate Shared Keys for Each Pair of Hosts</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571718">Copying the Shared Secret to Both Machines</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571729">Informing the Servers of the Key's Existence</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571833">Instructing the Server to Use the Key</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571891">TSIG Key Based Access Control</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2571940">Errors</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2571954">TKEY</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572003">SIG(0)</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#DNSSEC">DNSSEC</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572071">Generating Keys</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572218">Signing the Zone</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572368">Configuring Servers</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#dnssec.dynamic.zones">DNSSEC, Dynamic Zones, and Automatic Signing</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570798">Converting from insecure to secure</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570836">Dynamic DNS update method</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563499">Fully automatic zone signing</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563718">Private-type records</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563755">DNSKEY rollovers</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563768">Dynamic DNS update method</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563801">Automatic key rollovers</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563828">NSEC3PARAM rollovers via UPDATE</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563837">Converting from NSEC to NSEC3</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563847">Converting from NSEC3 to NSEC</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2563860">Converting from secure to insecure</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570724">Periodic re-signing</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570733">NSEC3 and OPTOUT</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#rfc5011.support">Dynamic Trust Anchor Management</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570923">Validating Resolver</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2570946">Authoritative Server</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#pkcs11">PKCS #11 (Cryptoki) support</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2607446">Prerequisites</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2607785">Building BIND 9 with PKCS#11</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2607948">PKCS #11 Tools</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2607979">Using the HSM</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2610362">Specifying the engine on the command line</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2634779">Running named with automatic zone re-signing</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect1"><a href="Bv9ARM.ch04.html#id2572656">IPv6 Support in <acronym class="acronym">BIND</acronym> 9</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572786">Address Lookups Using AAAA Records</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<dt><span class="sect2"><a href="Bv9ARM.ch04.html#id2572807">Address to Name Lookups Using Nibble Format</a></span></dt>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h2 class="title" style="clear: both">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="notify"></a>Notify</h2></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <acronym class="acronym">DNS</acronym> NOTIFY is a mechanism that allows master
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi servers to notify their slave servers of changes to a zone's data. In
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi response to a <span><strong class="command">NOTIFY</strong></span> from a master server, the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi slave will check to see that its version of the zone is the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi current version and, if not, initiate a zone transfer.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi For more information about <acronym class="acronym">DNS</acronym>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">NOTIFY</strong></span>, see the description of the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">notify</strong></span> option in <a href="Bv9ARM.ch06.html#boolean_options" title="Boolean Options">the section called “Boolean Options”</a> and
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi the description of the zone option <span><strong class="command">also-notify</strong></span> in
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <a href="Bv9ARM.ch06.html#zone_transfers" title="Zone Transfers">the section called “Zone Transfers”</a>. The <span><strong class="command">NOTIFY</strong></span>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi protocol is specified in RFC 1996.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi As a slave zone can also be a master to other slaves, <span><strong class="command">named</strong></span>,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi by default, sends <span><strong class="command">NOTIFY</strong></span> messages for every zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi it loads. Specifying <span><strong class="command">notify master-only;</strong></span> will
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi cause <span><strong class="command">named</strong></span> to only send <span><strong class="command">NOTIFY</strong></span> for master
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi zones that it loads.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h2 class="title" style="clear: both">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="dynamic_update"></a>Dynamic Update</h2></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Dynamic Update is a method for adding, replacing or deleting
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi records in a master server by sending it a special form of DNS
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi messages. The format and meaning of these messages is specified
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Dynamic update is enabled by including an
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">allow-update</strong></span> or an <span><strong class="command">update-policy</strong></span>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi clause in the <span><strong class="command">zone</strong></span> statement.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi If the zone's <span><strong class="command">update-policy</strong></span> is set to
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <strong class="userinput"><code>local</code></strong>, updates to the zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi will be permitted for the key <code class="varname">local-ddns</code>,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi which will be generated by <span><strong class="command">named</strong></span> at startup.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi See <a href="Bv9ARM.ch06.html#dynamic_update_policies" title="Dynamic Update Policies">the section called “Dynamic Update Policies”</a> for more details.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Dynamic updates using Kerberos signed requests can be made
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi using the TKEY/GSS protocol by setting either the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">tkey-gssapi-keytab</strong></span> option, or alternatively
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi by setting both the <span><strong class="command">tkey-gssapi-credential</strong></span>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi and <span><strong class="command">tkey-domain</strong></span> options. Once enabled,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Kerberos signed requests will be matched against the update
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe policies for the zone, using the Kerberos principal as the
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe signer for the request.
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe Updating of secure zones (zones using DNSSEC) follows RFC
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi 3007: RRSIG, NSEC and NSEC3 records affected by updates are
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi automatically regenerated by the server using an online
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi zone key. Update authorization is based on transaction
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi signatures and an explicit server policy.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h3 class="title">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="journal"></a>The journal file</h3></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi All changes made to a zone using dynamic update are stored
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi in the zone's journal file. This file is automatically created
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi by the server when the first dynamic update takes place.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The name of the journal file is formed by appending the extension
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="filename">.jnl</code> to the name of the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi corresponding zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi file unless specifically overridden. The journal file is in a
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi binary format and should not be edited manually.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The server will also occasionally write ("dump")
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi the complete contents of the updated zone to its zone file.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi This is not done immediately after
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi each dynamic update, because that would be too slow when a large
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi zone is updated frequently. Instead, the dump is delayed by
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi up to 15 minutes, allowing additional updates to take place.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi During the dump process, transient files will be created
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi with the extensions <code class="filename">.jnw</code> and
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="filename">.jbk</code>; under ordinary circumstances, these
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi will be removed when the dump is complete, and can be safely
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi When a server is restarted after a shutdown or crash, it will replay
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi the journal file to incorporate into the zone any updates that
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi place after the last zone dump.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Changes that result from incoming incremental zone transfers are
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi journalled in a similar way.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The zone files of dynamic zones cannot normally be edited by
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi hand because they are not guaranteed to contain the most recent
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi dynamic changes — those are only in the journal file.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The only way to ensure that the zone file of a dynamic zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi is up to date is to run <span><strong class="command">rndc stop</strong></span>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi If you have to make changes to a dynamic zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi manually, the following procedure will work: Disable dynamic updates
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to the zone using
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">rndc freeze <em class="replaceable"><code>zone</code></em></strong></span>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi This will also remove the zone's <code class="filename">.jnl</code> file
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi and update the master file. Edit the zone file. Run
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">rndc thaw <em class="replaceable"><code>zone</code></em></strong></span>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to reload the changed zone and re-enable dynamic updates.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h2 class="title" style="clear: both">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="incremental_zone_transfers"></a>Incremental Zone Transfers (IXFR)</h2></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The incremental zone transfer (IXFR) protocol is a way for
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi slave servers to transfer only changed data, instead of having to
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi transfer the entire zone. The IXFR protocol is specified in RFC
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi 1995. See <a href="Bv9ARM.ch09.html#proposed_standards">Proposed Standards</a>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi When acting as a master, <acronym class="acronym">BIND</acronym> 9
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi supports IXFR for those zones
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi where the necessary change history information is available. These
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi include master zones maintained by dynamic update and slave zones
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi whose data was obtained by IXFR. For manually maintained master
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi zones, and for slave zones obtained by performing a full zone
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi transfer (AXFR), IXFR is supported only if the option
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span><strong class="command">ixfr-from-differences</strong></span> is set
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to <strong class="userinput"><code>yes</code></strong>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi When acting as a slave, <acronym class="acronym">BIND</acronym> 9 will
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi attempt to use IXFR unless
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi it is explicitly disabled. For more information about disabling
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi IXFR, see the description of the <span><strong class="command">request-ixfr</strong></span> clause
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi of the <span><strong class="command">server</strong></span> statement.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h2 class="title" style="clear: both">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="id2564025"></a>Split DNS</h2></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Setting up different views, or visibility, of the DNS space to
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi internal and external resolvers is usually referred to as a
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span class="emphasis"><em>Split DNS</em></span> setup. There are several
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi reasons an organization would want to set up its DNS this way.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi One common reason for setting up a DNS system this way is
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to hide "internal" DNS information from "external" clients on the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Internet. There is some debate as to whether or not this is actually
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Internal DNS information leaks out in many ways (via email headers,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi for example) and most savvy "attackers" can find the information
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi they need using other means.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi However, since listing addresses of internal servers that
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi external clients cannot possibly reach can result in
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi connection delays and other annoyances, an organization may
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi choose to use a Split DNS to present a consistent view of itself
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to the outside world.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Another common reason for setting up a Split DNS system is
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to allow internal networks that are behind filters or in RFC 1918
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi space (reserved IP space, as documented in RFC 1918) to resolve DNS
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi on the Internet. Split DNS can also be used to allow mail from outside
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi back in to the internal network.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<div class="titlepage"><div><div><h3 class="title">
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<a name="id2564043"></a>Example split DNS setup</h3></div></div></div>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Let's say a company named <span class="emphasis"><em>Example, Inc.</em></span>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi has several corporate sites that have an internal network with
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Internet Protocol (IP) space and an external demilitarized zone (DMZ),
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi or "outside" section of a network, that is available to the public.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <span class="emphasis"><em>Example, Inc.</em></span> wants its internal clients
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to be able to resolve external hostnames and to exchange mail with
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi people on the outside. The company also wants its internal resolvers
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to have access to certain internal-only zones that are not available
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi at all outside of the internal network.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi In order to accomplish this, the company will set up two sets
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi of name servers. One set will be on the inside network (in the
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi IP space) and the other set will be on bastion hosts, which are
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi hosts that can talk to both sides of its network, in the DMZ.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The internal servers will be configured to forward all queries,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi except queries for <code class="filename">site1.internal</code>, <code class="filename">site2.internal</code>, <code class="filename">site1.example.com</code>,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi and <code class="filename">site2.example.com</code>, to the servers
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi DMZ. These internal servers will have complete sets of information
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi for <code class="filename">site1.example.com</code>, <code class="filename">site2.example.com</code>, <code class="filename">site1.internal</code>,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi and <code class="filename">site2.internal</code>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi To protect the <code class="filename">site1.internal</code> and <code class="filename">site2.internal</code> domains,
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi the internal name servers must be configured to disallow all queries
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to these domains from any external hosts, including the bastion
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi The external servers, which are on the bastion hosts, will
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi be configured to serve the "public" version of the <code class="filename">site1</code> and <code class="filename">site2.example.com</code> zones.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi This could include things such as the host records for public servers
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi (<code class="filename">www.example.com</code> and <code class="filename">ftp.example.com</code>),
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi and mail exchange (MX) records (<code class="filename">a.mx.example.com</code> and <code class="filename">b.mx.example.com</code>).
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi In addition, the public <code class="filename">site1</code> and <code class="filename">site2.example.com</code> zones
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi should have special MX records that contain wildcard (`*') records
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi pointing to the bastion hosts. This is needed because external mail
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi servers do not have any other way of looking up how to deliver mail
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to those internal hosts. With the wildcard records, the mail will
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi be delivered to the bastion host, which can then forward it on to
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi internal hosts.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Here's an example of a wildcard MX record:
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<pre class="programlisting">* IN MX 10 external1.example.com.</pre>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Now that they accept mail on behalf of anything in the internal
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi network, the bastion hosts will need to know how to deliver mail
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi to internal hosts. In order for this to work properly, the resolvers
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi the bastion hosts will need to be configured to point to the internal
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi name servers for DNS resolution.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Queries for internal hostnames will be answered by the internal
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi servers, and queries for external hostnames will be forwarded back
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi out to the DNS servers on the bastion hosts.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi In order for all this to work properly, internal clients will
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi need to be configured to query <span class="emphasis"><em>only</em></span> the internal
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi name servers for DNS queries. This could also be enforced via
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi filtering on the network.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi If everything has been set properly, <span class="emphasis"><em>Example, Inc.</em></span>'s
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi internal clients will now be able to:
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Look up any hostnames in the <code class="literal">site1</code>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="literal">site2.example.com</code> zones.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Look up any hostnames in the <code class="literal">site1.internal</code> and
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="literal">site2.internal</code> domains.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<li>Look up any hostnames on the Internet.</li>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi<li>Exchange mail with both internal and external people.</li>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Hosts on the Internet will be able to:
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Look up any hostnames in the <code class="literal">site1</code>
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="literal">site2.example.com</code> zones.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Exchange mail with anyone in the <code class="literal">site1</code> and
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi <code class="literal">site2.example.com</code> zones.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Here is an example configuration for the setup we just
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi described above. Note that this is only configuration information;
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi for information on how to configure your zone files, see <a href="Bv9ARM.ch03.html#sample_configuration" title="Sample Configurations">the section called “Sample Configurations”</a>.
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi Internal DNS server config:
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchiacl internals { 172.16.72.0/24; 192.168.1.0/24; };
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchiacl externals { <code class="varname">bastion-ips-go-here</code>; };
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi forward only;
43051d2742bbe5911de73322064cb573b6aff975Robert Mustacchi // forward to external servers
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe forwarders {
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe <code class="varname">bastion-ips-go-here</code>;
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov // sample allow-transfer (no one)
c10c16dec587a0662068f6e2991c29ed3a9db943Richard Lowe allow-transfer { none; };
a9478106a12424322498e53cf7cd75bd8a4d6004Yuri Pankov // restrict query access
zone "site1.example.com" {
zone "site2.example.com" {
zone "site1.internal" {
zone "site2.internal" {
zone "site1.example.com" {
zone "site2.example.com" {
A shared secret is generated to be shared between <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host2</em></span>.
<strong class="userinput"><code>dnssec-keygen -a hmac-sha256 -b 128 -n HOST host1-host2.</code></strong>
Imagine <span class="emphasis"><em>host1</em></span> and <span class="emphasis"><em>host 2</em></span>
both servers. The following is added to each server's <code class="filename">named.conf</code> file:
be told when keys are to be used. The following is added to the <code class="filename">named.conf</code> file
for <span class="emphasis"><em>host1</em></span>, if the IP address of <span class="emphasis"><em>host2</em></span> is
to that address, the message will be signed with the specified key. <span class="emphasis"><em>host1</em></span> will
configuration file (with <span class="emphasis"><em>host1</em></span>'s address) for <span class="emphasis"><em>host2</em></span> to
See <a 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 href="man.dnssec-keygen.html" title="dnssec-keygen"><span class="refentrytitle"><span class="application">dnssec-keygen</span></span>(8)</a> and
<a href="man.dnssec-settime.html" title="dnssec-settime"><span class="refentrytitle"><span class="application">dnssec-settime</span></span>(8)</a> for more information.)
<span><strong class="command">rndc sign</strong></span> or <span><strong class="command">rndc loadkeys</strong></span>
<span><strong class="command">dnssec-keygen</strong></span> or <span><strong class="command">dnssec-settime</strong></span>),
and Usage">the section called “<span><strong class="command">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>
$ <strong class="userinput"><code>wget <a href="" target="_top">http://www.openssl.org/source/openssl-0.9.8l.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><strong class="command">make test</strong></span>". If "<span><strong class="command">make
$ <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>
$ <strong class="userinput"><code>dnssec-keyfromlabel -l sample-ksk -f KSK example.net</code></strong>
by placing the PIN into the openssl.cnf file (in the above
<a name="id2572656"></a>IPv6 Support in <acronym class="acronym">BIND</acronym> 9</h2></div></div></div>
see <a href="Bv9ARM.ch09.html#ipv6addresses" title="IPv6 addresses (AAAA)">the section called “IPv6 addresses (AAAA)”</a>.
$ORIGIN example.com.