Bv9ARM.ch04.html revision 4e99bcb0603f3270ff89323d149a1fbc668e7da0
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Advanced Concepts</TITLE
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiNAME="GENERATOR"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCONTENT="Modular DocBook HTML Stylesheet Version 1.61
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiTITLE="BIND 9 Administrator Reference Manual"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiREL="PREVIOUS"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiTITLE="Nameserver Configuration"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiTITLE="The BIND 9 Lightweight Resolver"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiCLASS="chapter"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiBGCOLOR="#FFFFFF"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiTEXT="#000000"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiLINK="#0000FF"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiVLINK="#840084"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiALINK="#0000FF"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="NAVHEADER"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiCELLPADDING="0"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiCELLSPACING="0"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiALIGN="center"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai>BIND 9 Administrator Reference Manual</TH
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiVALIGN="bottom"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiALIGN="center"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiVALIGN="bottom"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiALIGN="right"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiVALIGN="bottom"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="chapter"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Chapter 4. Advanced Concepts</A
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Table of Contents</B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiHREF="Bv9ARM.ch04.html#dynamic_update"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Dynamic Update</A
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiHREF="Bv9ARM.ch04.html#incremental_zone_transfers"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Incremental Zone Transfers (IXFR)</A
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Split DNS</A
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>IPv6 Support in <SPAN
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="acronym"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="sect1"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="sect1"
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiNAME="dynamic_update"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>4.1. Dynamic Update</A
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Dynamic update is the term used for the ability under
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai certain specified conditions to add, modify or delete records or
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai RRsets in the master zone files. Dynamic update is fully described
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai in RFC 2136.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Dynamic update is enabled on a zone-by-zone basis, by
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai including an <B
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>allow-update</B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>update-policy</B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> clause in the
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> statement.</P
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai>Updating of secure zones (zones using DNSSEC) follows
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai RFC 3007: SIG and NXT records affected by updates are automatically
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai regenerated by the server using an online zone key.
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai Update authorization is based
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai on transaction signatures and an explicit server policy.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="sect2"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="sect2"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiNAME="journal"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>4.1.1. The journal file</A
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>All changes made to a zone using dynamic update are stored in the
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai zone's journal file. This file is automatically created by the
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai server when when the first dynamic update takes place. The name of
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai the journal file is formed by appending the
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai extension <TT
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiCLASS="filename"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai name of the corresponding zone file. The journal file is in a
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai binary format and should not be edited manually.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>The server will also occasionally write ("dump")
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai the complete contents of the updated zone to its zone file.
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai This is not done immediately after
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai each dynamic update, because that would be too slow when a large
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai zone is updated frequently. Instead, the dump is delayed by 15
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai minutes, allowing additional updates to take place.</P
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai>When a server is restarted after a shutdown or crash, it will replay
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai the journal file to incorporate into the zone any updates that took
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai place after the last zone dump.</P
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai>Changes that result from incoming incremental zone transfers are also
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai journalled in a similar way.</P
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>The zone files of dynamic zones cannot normally be edited by
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai hand because they are not guaranteed to contain the most recent
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai dynamic changes - those are only in the journal file.
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai The only way to ensure that the zone file of a dynamic zone
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai is up to date is to run <B
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>rndc stop</B
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai>If you have to make changes to a dynamic zone
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai manually, the following procedure will work: Shut down
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desai the server using <B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>rndc stop</B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> (sending a signal
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="command"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>rndc halt</B
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="emphasis"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai sufficient). Wait for the server to exit,
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="emphasis"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai> file, edit the zone file,
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai and restart the server. Removing the <TT
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai file is necessary because the manual edits will not be
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai present in the journal, rendering it inconsistent with the
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai contents of the zone file.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="sect1"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="sect1"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiNAME="incremental_zone_transfers"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>4.2. Incremental Zone Transfers (IXFR)</A
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>The incremental zone transfer (IXFR) protocol is a way for
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaislave servers to transfer only changed data, instead of having to
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaitransfer the entire zone. The IXFR protocol is documented in RFC
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiHREF="Bv9ARM.ch09.html#proposed_standards"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Proposed Standards</A
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>When acting as a master, <SPAN
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="acronym"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaisupports IXFR for those zones
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiwhere the necessary change history information is available. These
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiinclude master zones maintained by dynamic update and slave zones
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiwhose data was obtained by IXFR. For manually maintained master
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaizones, and for slave zones obtained by performing a full zone
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaitransfer (AXFR), IXFR is supported only if the option
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="command"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>ixfr-from-differences</B
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="userinput"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>When acting as a slave, <SPAN
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="acronym"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaiattempt to use IXFR unless
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaiit is explicitly disabled. For more information about disabling
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiIXFR, see the description of the <B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>request-ixfr</B
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="command"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> statement.</P
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="sect1"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="sect1"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiNAME="AEN737"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>4.3. Split DNS</A
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Setting up different views, or visibility, of DNS space to
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaiinternal and external resolvers is usually referred to as a <I
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="emphasis"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> setup. There are several reasons an organization
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaiwould want to set up its DNS this way.</P
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>One common reason for setting up a DNS system this way is
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desaito hide "internal" DNS information from "external" clients on the
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiInternet. There is some debate as to whether or not this is actually useful.
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiInternal DNS information leaks out in many ways (via email headers,
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaifor example) and most savvy "attackers" can find the information
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaithey need using other means.</P
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Another common reason for setting up a Split DNS system is
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaito allow internal networks that are behind filters or in RFC 1918
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaispace (reserved IP space, as documented in RFC 1918) to resolve DNS
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desaion the Internet. Split DNS can also be used to allow mail from outside
03f6549a37d5e5e66d82029017e7482b1d0f0154Satyen Desaiback in to the internal network.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Here is an example of a split DNS setup:</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Let's say a company named <I
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="emphasis"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>Example, Inc.</I
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaihas several corporate sites that have an internal network with reserved
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiInternet Protocol (IP) space and an external demilitarized zone (DMZ),
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaior "outside" section of a network, that is available to the public.</P
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="emphasis"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>Example, Inc.</I
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai> wants its internal clients
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaito be able to resolve external hostnames and to exchange mail with
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaipeople on the outside. The company also wants its internal resolvers
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaito have access to certain internal-only zones that are not available
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiat all outside of the internal network.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>In order to accomplish this, the company will set up two sets
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiof nameservers. One set will be on the inside network (in the reserved
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiIP space) and the other set will be on bastion hosts, which are "proxy"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaihosts that can talk to both sides of its network, in the DMZ.</P
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desai>The internal servers will be configured to forward all queries,
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen Desaiexcept queries for <TT
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
ea9d934cb7e379c8bb93c95c66219c403f6eeb30Satyen DesaiCLASS="filename"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen Desai>, to the servers in the
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiDMZ. These internal servers will have complete sets of information
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="filename"
9d8a1e46eef4d2ba1724d3656501d1ed2b68ab1bSatyen DesaiCLASS="filename"
HREF="Bv9ARM.ch03.html#sample_configuration"
zone "site1.example.com" { // sample slave zone
zone "site2.example.com" {
zone "site1.internal" {
zone "site2.internal" {
zone "site1.example.com" { // sample slave zone
zone "site2.example.com" {
HREF="Bv9ARM.ch09.html#proposed_standards"
HREF="Bv9ARM.ch06.html#dynamic_update_policies"
that the tools shipped with BIND 9.0.x are not fully compatible
HREF="Bv9ARM.ch05.html"
HREF="Bv9ARM.ch09.html#ipv6addresses"
> $ORIGIN example.com.
> $ORIGIN example.com.
> $ORIGIN example.com.
host 3600 IN A6 64 0:0:0:0:42::1 company.example1.net.
host 3600 IN A6 64 0:0:0:0:42::1 company.example2.net.
> $ORIGIN example1.net.
> $ORIGIN example2.net.
> $ORIGIN example.com.
> $ORIGIN 0.6.8.1.1.0.2.0.0.5.0.8.e.f.f.3.ip6.int.
1.0.0.0.0.0.0.0.0.0.0.0.2.4.0.0 14400 IN PTR host.example.com.
> $ORIGIN example.com.
host IN A6 64 ::1234:5678:1212:5675 cust1.example.net.
IN A6 64 ::1234:5678:1212:5675 subnet5.example2.net.
$ORIGIN example.net.
cust1 IN A6 48 0:0:0:dddd:: ipv6net.example.net.
$ORIGIN example2.net.
subnet5 IN A6 48 0:0:0:1:: ipv6net2.example2.net.
> $ORIGIN ipv6-rev.example.com.
HREF="Bv9ARM.ch03.html"
HREF="Bv9ARM.html"
HREF="Bv9ARM.ch05.html"