freebsd-nq/contrib/bind9/doc/arm/Bv9ARM.ch01.html

413 lines
21 KiB
HTML
Raw Normal View History

2005-12-29 04:22:58 +00:00
<!--
- Copyright (C) 2004, 2005 Internet Systems Consortium, Inc. ("ISC")
- Copyright (C) 2000-2003 Internet Software Consortium.
-
- Permission to use, copy, modify, and distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THIS SOFTWARE.
-->
<!-- $Id: Bv9ARM.ch01.html,v 1.12.2.2.8.9 2005/10/13 02:33:58 marka Exp $ -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Chapter<EFBFBD>1.<2E>Introduction </title>
<meta name="generator" content="DocBook XSL Stylesheets V1.69.1">
<link rel="start" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
<link rel="up" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
<link rel="prev" href="Bv9ARM.html" title="BIND 9 Administrator Reference Manual">
<link rel="next" href="Bv9ARM.ch02.html" title="Chapter<65>2.<2E>BIND Resource Requirements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Chapter<EFBFBD>1.<2E>Introduction </th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="Bv9ARM.html">Prev</a><EFBFBD></td>
<th width="60%" align="center"><EFBFBD></th>
<td width="20%" align="right"><EFBFBD><a accesskey="n" href="Bv9ARM.ch02.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="chapter" lang="en">
<div class="titlepage"><div><div><h2 class="title">
<a name="Bv9ARM.ch01"></a>Chapter<EFBFBD>1.<2E>Introduction </h2></div></div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2545879">Scope of Document</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2545905">Organization of This Document</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2545976">Conventions Used in This Document</a></span></dt>
<dt><span class="sect1"><a href="Bv9ARM.ch01.html#id2546234">The Domain Name System (<span class="acronym">DNS</span>)</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2546254">DNS Fundamentals</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2544105">Domains and Domain Names</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2546579">Zones</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2546653">Authoritative Name Servers</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2546950">Caching Name Servers</a></span></dt>
<dt><span class="sect2"><a href="Bv9ARM.ch01.html#id2547076">Name Servers in Multiple Roles</a></span></dt>
</dl></dd>
</dl>
</div>
<p>The Internet Domain Name System (<span class="acronym">DNS</span>) consists of the syntax
2004-09-19 01:30:24 +00:00
to specify the names of entities in the Internet in a hierarchical
manner, the rules used for delegating authority over names, and the
system implementation that actually maps names to Internet
2005-12-29 04:22:58 +00:00
addresses. <span class="acronym">DNS</span> data is maintained in a group of distributed
hierarchical databases.</p>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2545879"></a>Scope of Document</h2></div></div></div>
<p>The Berkeley Internet Name Domain (<span class="acronym">BIND</span>) implements an
2004-09-19 01:30:24 +00:00
domain name server for a number of operating systems. This
document provides basic information about the installation and
2005-12-29 04:22:58 +00:00
care of the Internet Software Consortium (<span class="acronym">ISC</span>)
<span class="acronym">BIND</span> version 9 software package for system
administrators.</p>
<p>This version of the manual corresponds to BIND version 9.3.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2545905"></a>Organization of This Document</h2></div></div></div>
<p>In this document, <span class="emphasis"><em>Section 1</em></span> introduces
the basic <span class="acronym">DNS</span> and <span class="acronym">BIND</span> concepts. <span class="emphasis"><em>Section 2</em></span>
describes resource requirements for running <span class="acronym">BIND</span> in various
environments. Information in <span class="emphasis"><em>Section 3</em></span> is
<span class="emphasis"><em>task-oriented</em></span> in its presentation and is
2004-09-19 01:30:24 +00:00
organized functionally, to aid in the process of installing the
2005-12-29 04:22:58 +00:00
<span class="acronym">BIND</span> 9 software. The task-oriented section is followed by
<span class="emphasis"><em>Section 4</em></span>, which contains more advanced
2004-09-19 01:30:24 +00:00
concepts that the system administrator may need for implementing
2005-12-29 04:22:58 +00:00
certain options. <span class="emphasis"><em>Section 5</em></span>
describes the <span class="acronym">BIND</span> 9 lightweight
resolver. The contents of <span class="emphasis"><em>Section 6</em></span> are
2004-09-19 01:30:24 +00:00
organized as in a reference manual to aid in the ongoing
2005-12-29 04:22:58 +00:00
maintenance of the software. <span class="emphasis"><em>Section 7
</em></span>addresses security considerations, and
<span class="emphasis"><em>Section 8</em></span> contains troubleshooting help. The
2004-09-19 01:30:24 +00:00
main body of the document is followed by several
2005-12-29 04:22:58 +00:00
<span class="emphasis"><em>Appendices</em></span> which contain useful reference
information, such as a <span class="emphasis"><em>Bibliography</em></span> and
historic information related to <span class="acronym">BIND</span> and the Domain Name
System.</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2545976"></a>Conventions Used in This Document</h2></div></div></div>
<p>In this document, we use the following general typographic
conventions:</p>
<div class="informaltable"><table border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td>
<p><span class="emphasis"><em>To
describe:</em></span></p>
</td>
<td>
<p><span class="emphasis"><em>We use the style:</em></span></p>
</td>
</tr>
<tr>
<td>
<p>a pathname, filename, URL, hostname,
mailing list name, or new term or concept</p>
</td>
<td><p><code class="filename">Fixed width</code></p></td>
</tr>
<tr>
<td><p>literal user
input</p></td>
<td><p><strong class="userinput"><code>Fixed Width Bold</code></strong></p></td>
</tr>
<tr>
<td><p>program output</p></td>
<td><p><code class="computeroutput">Fixed Width</code></p></td>
</tr>
</tbody>
</table></div>
<p>The following conventions are used in descriptions of the
<span class="acronym">BIND</span> configuration file:</p>
<div class="informaltable"><table border="1">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="emphasis"><em>To
describe:</em></span></p></td>
<td><p><span class="emphasis"><em>We use the style:</em></span></p></td>
</tr>
<tr>
<td><p>keywords</p></td>
<td><p><code class="literal">Fixed Width</code></p></td>
</tr>
<tr>
<td><p>variables</p></td>
<td><p><code class="varname">Fixed Width</code></p></td>
</tr>
<tr>
<td><p>Optional input</p></td>
<td><p>[<span class="optional">Text is enclosed in square brackets</span>]</p></td>
</tr>
</tbody>
</table></div>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="id2546234"></a>The Domain Name System (<span class="acronym">DNS</span>)</h2></div></div></div>
<p>The purpose of this document is to explain the installation
and upkeep of the <span class="acronym">BIND</span> software package, and we
2004-09-19 01:30:24 +00:00
begin by reviewing the fundamentals of the Domain Name System
2005-12-29 04:22:58 +00:00
(<span class="acronym">DNS</span>) as they relate to <span class="acronym">BIND</span>.
</p>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2546254"></a>DNS Fundamentals</h3></div></div></div>
<p>The Domain Name System (DNS) is the hierarchical, distributed
2004-09-19 01:30:24 +00:00
database. It stores information for mapping Internet host names to IP
addresses and vice versa, mail routing information, and other data
2005-12-29 04:22:58 +00:00
used by Internet applications.</p>
<p>Clients look up information in the DNS by calling a
<span class="emphasis"><em>resolver</em></span> library, which sends queries to one or
more <span class="emphasis"><em>name servers</em></span> and interprets the responses.
The <span class="acronym">BIND</span> 9 software distribution contains a
name server, <span><strong class="command">named</strong></span>, and two resolver
libraries, <span><strong class="command">liblwres</strong></span> and <span><strong class="command">libbind</strong></span>.
</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2544105"></a>Domains and Domain Names</h3></div></div></div>
<p>The data stored in the DNS is identified by <span class="emphasis"><em>domain
names</em></span> that are organized as a tree according to
2004-09-19 01:30:24 +00:00
organizational or administrative boundaries. Each node of the tree,
2005-12-29 04:22:58 +00:00
called a <span class="emphasis"><em>domain</em></span>, is given a label. The domain name of the
2004-09-19 01:30:24 +00:00
node is the concatenation of all the labels on the path from the
2005-12-29 04:22:58 +00:00
node to the <span class="emphasis"><em>root</em></span> node. This is represented
2004-09-19 01:30:24 +00:00
in written form as a string of labels listed from right to left and
separated by dots. A label need only be unique within its parent
2005-12-29 04:22:58 +00:00
domain.</p>
<p>For example, a domain name for a host at the
company <span class="emphasis"><em>Example, Inc.</em></span> could be
<code class="literal">mail.example.com</code>,
where <code class="literal">com</code> is the
2004-09-19 01:30:24 +00:00
top level domain to which
2005-12-29 04:22:58 +00:00
<code class="literal">ourhost.example.com</code> belongs,
<code class="literal">example</code> is
a subdomain of <code class="literal">com</code>, and
<code class="literal">ourhost</code> is the
name of the host.</p>
<p>For administrative purposes, the name space is partitioned into
areas called <span class="emphasis"><em>zones</em></span>, each starting at a node and
2004-09-19 01:30:24 +00:00
extending down to the leaf nodes or to nodes where other zones start.
2005-12-29 04:22:58 +00:00
The data for each zone is stored in a <span class="emphasis"><em>name
server</em></span>, which answers queries about the zone using the
<span class="emphasis"><em>DNS protocol</em></span>.
</p>
<p>The data associated with each domain name is stored in the
form of <span class="emphasis"><em>resource records</em></span> (<span class="acronym">RR</span>s).
2004-09-19 01:30:24 +00:00
Some of the supported resource record types are described in
2005-12-29 04:22:58 +00:00
<a href="Bv9ARM.ch06.html#types_of_resource_records_and_when_to_use_them" title="Types of Resource Records and When to Use Them">the section called &#8220;Types of Resource Records and When to Use Them&#8221;</a>.</p>
<p>For more detailed information about the design of the DNS and
2004-09-19 01:30:24 +00:00
the DNS protocol, please refer to the standards documents listed in
2005-12-29 04:22:58 +00:00
<a href="Bv9ARM.ch09.html#rfcs" title="Request for Comments (RFCs)">the section called &#8220;Request for Comments (RFCs)&#8221;</a>.</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2546579"></a>Zones</h3></div></div></div>
<p>To properly operate a name server, it is important to understand
the difference between a <span class="emphasis"><em>zone</em></span>
and a <span class="emphasis"><em>domain</em></span>.</p>
<p>As we stated previously, a zone is a point of delegation in
the <span class="acronym">DNS</span> tree. A zone consists of
2004-09-19 01:30:24 +00:00
those contiguous parts of the domain
tree for which a name server has complete information and over which
it has authority. It contains all domain names from a certain point
downward in the domain tree except those which are delegated to
other zones. A delegation point is marked by one or more
2005-12-29 04:22:58 +00:00
<span class="emphasis"><em>NS records</em></span> in the
2004-09-19 01:30:24 +00:00
parent zone, which should be matched by equivalent NS records at
2005-12-29 04:22:58 +00:00
the root of the delegated zone.</p>
<p>For instance, consider the <code class="literal">example.com</code>
2004-09-19 01:30:24 +00:00
domain which includes names
2005-12-29 04:22:58 +00:00
such as <code class="literal">host.aaa.example.com</code> and
<code class="literal">host.bbb.example.com</code> even though
the <code class="literal">example.com</code> zone includes
only delegations for the <code class="literal">aaa.example.com</code> and
<code class="literal">bbb.example.com</code> zones. A zone can map
2004-09-19 01:30:24 +00:00
exactly to a single domain, but could also include only part of a
domain, the rest of which could be delegated to other
2005-12-29 04:22:58 +00:00
name servers. Every name in the <span class="acronym">DNS</span> tree is a
<span class="emphasis"><em>domain</em></span>, even if it is
<span class="emphasis"><em>terminal</em></span>, that is, has no
<span class="emphasis"><em>subdomains</em></span>. Every subdomain is a domain and
2004-09-19 01:30:24 +00:00
every domain except the root is also a subdomain. The terminology is
not intuitive and we suggest that you read RFCs 1033, 1034 and 1035 to
gain a complete understanding of this difficult and subtle
2005-12-29 04:22:58 +00:00
topic.</p>
<p>Though <span class="acronym">BIND</span> is called a "domain name server",
2004-09-19 01:30:24 +00:00
it deals primarily in terms of zones. The master and slave
2005-12-29 04:22:58 +00:00
declarations in the <code class="filename">named.conf</code> file specify
2004-09-19 01:30:24 +00:00
zones, not domains. When you ask some other site if it is willing to
2005-12-29 04:22:58 +00:00
be a slave server for your <span class="emphasis"><em>domain</em></span>, you are
actually asking for slave service for some collection of zones.</p>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2546653"></a>Authoritative Name Servers</h3></div></div></div>
<p>Each zone is served by at least
one <span class="emphasis"><em>authoritative name server</em></span>,
2004-09-19 01:30:24 +00:00
which contains the complete data for the zone.
To make the DNS tolerant of server and network failures,
most zones have two or more authoritative servers.
2005-12-29 04:22:58 +00:00
</p>
<p>Responses from authoritative servers have the "authoritative
2004-09-19 01:30:24 +00:00
answer" (AA) bit set in the response packets. This makes them
easy to identify when debugging DNS configurations using tools like
2005-12-29 04:22:58 +00:00
<span><strong class="command">dig</strong></span> (<a href="Bv9ARM.ch03.html#diagnostic_tools" title="Diagnostic Tools">the section called &#8220;Diagnostic Tools&#8221;</a>).</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546676"></a>The Primary Master</h4></div></div></div>
<p>
The authoritative server where the master copy of the zone data is maintained is
called the <span class="emphasis"><em>primary master</em></span> server, or simply the
<span class="emphasis"><em>primary</em></span>. It loads the zone contents from some
2004-09-19 01:30:24 +00:00
local file edited by humans or perhaps generated mechanically from
some other local file which is edited by humans. This file is called
2005-12-29 04:22:58 +00:00
the <span class="emphasis"><em>zone file</em></span> or <span class="emphasis"><em>master file</em></span>.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546902"></a>Slave Servers</h4></div></div></div>
<p>The other authoritative servers, the <span class="emphasis"><em>slave</em></span>
servers (also known as <span class="emphasis"><em>secondary</em></span> servers) load
2004-09-19 01:30:24 +00:00
the zone contents from another server using a replication process
2005-12-29 04:22:58 +00:00
known as a <span class="emphasis"><em>zone transfer</em></span>. Typically the data are
2004-09-19 01:30:24 +00:00
transferred directly from the primary master, but it is also possible
to transfer it from another slave. In other words, a slave server
2005-12-29 04:22:58 +00:00
may itself act as a master to a subordinate slave server.</p>
</div>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2546921"></a>Stealth Servers</h4></div></div></div>
<p>Usually all of the zone's authoritative servers are listed in
2004-09-19 01:30:24 +00:00
NS records in the parent zone. These NS records constitute
2005-12-29 04:22:58 +00:00
a <span class="emphasis"><em>delegation</em></span> of the zone from the parent.
2004-09-19 01:30:24 +00:00
The authoritative servers are also listed in the zone file itself,
2005-12-29 04:22:58 +00:00
at the <span class="emphasis"><em>top level</em></span> or <span class="emphasis"><em>apex</em></span>
2004-09-19 01:30:24 +00:00
of the zone. You can list servers in the zone's top-level NS
records that are not in the parent's NS delegation, but you cannot
list servers in the parent's delegation that are not present at
2005-12-29 04:22:58 +00:00
the zone's top level.</p>
<p>A <span class="emphasis"><em>stealth server</em></span> is a server that is
2004-09-19 01:30:24 +00:00
authoritative for a zone but is not listed in that zone's NS
records. Stealth servers can be used for keeping a local copy of a
zone to speed up access to the zone's records or to make sure that the
zone is available even if all the "official" servers for the zone are
2005-12-29 04:22:58 +00:00
inaccessible.</p>
<p>A configuration where the primary master server itself is a
2004-09-19 01:30:24 +00:00
stealth server is often referred to as a "hidden primary"
configuration. One use for this configuration is when the primary master
is behind a firewall and therefore unable to communicate directly
2005-12-29 04:22:58 +00:00
with the outside world.</p>
</div>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2546950"></a>Caching Name Servers</h3></div></div></div>
<p>The resolver libraries provided by most operating systems are
<span class="emphasis"><em>stub resolvers</em></span>, meaning that they are not capable of
2004-09-19 01:30:24 +00:00
performing the full DNS resolution process by themselves by talking
directly to the authoritative servers. Instead, they rely on a local
name server to perform the resolution on their behalf. Such a server
2005-12-29 04:22:58 +00:00
is called a <span class="emphasis"><em>recursive</em></span> name server; it performs
<span class="emphasis"><em>recursive lookups</em></span> for local clients.</p>
<p>To improve performance, recursive servers cache the results of
2004-09-19 01:30:24 +00:00
the lookups they perform. Since the processes of recursion and
caching are intimately connected, the terms
2005-12-29 04:22:58 +00:00
<span class="emphasis"><em>recursive server</em></span> and
<span class="emphasis"><em>caching server</em></span> are often used synonymously.</p>
<p>The length of time for which a record may be retained in
2004-09-19 01:30:24 +00:00
in the cache of a caching name server is controlled by the
Time To Live (TTL) field associated with each resource record.
2005-12-29 04:22:58 +00:00
</p>
<div class="sect3" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="id2547050"></a>Forwarding</h4></div></div></div>
<p>Even a caching name server does not necessarily perform
2004-09-19 01:30:24 +00:00
the complete recursive lookup itself. Instead, it can
2005-12-29 04:22:58 +00:00
<span class="emphasis"><em>forward</em></span> some or all of the queries
2004-09-19 01:30:24 +00:00
that it cannot satisfy from its cache to another caching name server,
2005-12-29 04:22:58 +00:00
commonly referred to as a <span class="emphasis"><em>forwarder</em></span>.
</p>
<p>There may be one or more forwarders,
2004-09-19 01:30:24 +00:00
and they are queried in turn until the list is exhausted or an answer
is found. Forwarders are typically used when you do not
wish all the servers at a given site to interact directly with the rest of
the Internet servers. A typical scenario would involve a number
2005-12-29 04:22:58 +00:00
of internal <span class="acronym">DNS</span> servers and an Internet firewall. Servers unable
2004-09-19 01:30:24 +00:00
to pass packets through the firewall would forward to the server
2005-12-29 04:22:58 +00:00
that can do it, and that server would query the Internet <span class="acronym">DNS</span> servers
2004-09-19 01:30:24 +00:00
on the internal server's behalf. An added benefit of using the forwarding
feature is that the central machine develops a much more complete
cache of information that all the clients can take advantage
2005-12-29 04:22:58 +00:00
of.</p>
</div>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="id2547076"></a>Name Servers in Multiple Roles</h3></div></div></div>
<p>The <span class="acronym">BIND</span> name server can simultaneously act as
2004-09-19 01:30:24 +00:00
a master for some zones, a slave for other zones, and as a caching
2005-12-29 04:22:58 +00:00
(recursive) server for a set of local clients.</p>
<p>However, since the functions of authoritative name service
2004-09-19 01:30:24 +00:00
and caching/recursive name service are logically separate, it is
often advantageous to run them on separate server machines.
A server that only provides authoritative name service
2005-12-29 04:22:58 +00:00
(an <span class="emphasis"><em>authoritative-only</em></span> server) can run with
2004-09-19 01:30:24 +00:00
recursion disabled, improving reliability and security.
A server that is not authoritative for any zones and only provides
recursive service to local
2005-12-29 04:22:58 +00:00
clients (a <span class="emphasis"><em>caching-only</em></span> server)
2004-09-19 01:30:24 +00:00
does not need to be reachable from the Internet at large and can
2005-12-29 04:22:58 +00:00
be placed inside a firewall.</p>
</div>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="Bv9ARM.html">Prev</a><EFBFBD></td>
<td width="20%" align="center"><EFBFBD></td>
<td width="40%" align="right"><EFBFBD><a accesskey="n" href="Bv9ARM.ch02.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">BIND 9 Administrator Reference Manual<61></td>
<td width="20%" align="center"><a accesskey="h" href="Bv9ARM.html">Home</a></td>
<td width="40%" align="right" valign="top"><EFBFBD>Chapter<EFBFBD>2.<2E><span class="acronym">BIND</span> Resource Requirements</td>
</tr>
</table>
</div>
</body>
</html>