<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
<!--
 - Copyright (C) 2004  Internet Systems Consortium, Inc. ("ISC")
 -
 - 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: named.conf.docbook,v 1.1.6.1 2004/08/21 06:44:31 marka Exp $ -->

<refentry>
  <refentryinfo>
    <date>Aug 13, 2004</date>
  </refentryinfo>

  <refmeta>
    <refentrytitle><filename>named.conf</filename></refentrytitle>
    <manvolnum>5</manvolnum>
    <refmiscinfo>BIND9</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname><filename>named.conf</filename></refname>
    <refpurpose>configuration file for named</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <cmdsynopsis>
      <command>named.conf</command>
    </cmdsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>DESCRIPTION</title>
    <para>
	<filename>named.conf</filename> is the configuration file for
	<command>named</command>.  Statements are enclosed
	in braces and terminated with a semi-colon.  Clauses in
	the statements are also semi-colon terminated.  The usual
	comment styles are supported:
    </para>
    <para>
	C style: /* */
    </para>
    <para>
	C++ style: // to end of line
    </para>
    <para>
	Unix style: # to end of line
    </para>
  </refsect1>

<refsect1>
<title>ACL</title>
<LITERALLAYOUT>
acl <replaceable>string</replaceable> { <replaceable>address_match_element</replaceable>; ... };

</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>KEY</title>
<LITERALLAYOUT>
key <replaceable>domain_name</replaceable> {
	algorithm <replaceable>string</replaceable>;
	secret <replaceable>string</replaceable>;
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>SERVER</title>
<LITERALLAYOUT>
server ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) {
	bogus <replaceable>boolean</replaceable>;
	edns <replaceable>boolean</replaceable>;
	provide-ixfr <replaceable>boolean</replaceable>;
	request-ixfr <replaceable>boolean</replaceable>;
	keys <replaceable>server_key</replaceable>;
	transfers <replaceable>integer</replaceable>;
	transfer-format ( many-answers | one-answer );
	transfer-source ( <replaceable>ipv4_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;

	support-ixfr <replaceable>boolean</replaceable>; // obsolete
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>TRUSTED-KEYS</title>
<LITERALLAYOUT>
trusted-keys {
	<replaceable>domain_name</replaceable> <replaceable>flags</replaceable> <replaceable>protocol</replaceable> <replaceable>algorithm</replaceable> <replaceable>key</replaceable>; ... 
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>CONTROLS</title>
<LITERALLAYOUT>
controls {
	inet ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>
		allow { <replaceable>address_match_element</replaceable>; ... }
		<optional> keys { <replaceable>string</replaceable>; ... } </optional>;
	unix <replaceable>unsupported</replaceable>; // not implemented
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>LOGGING</title>
<LITERALLAYOUT>
logging {
	channel <replaceable>string</replaceable> {
		file <replaceable>log_file</replaceable>;
		syslog <replaceable>optional_facility</replaceable>;
		null;
		stderr;
		severity <replaceable>log_severity</replaceable>;
		print-time <replaceable>boolean</replaceable>;
		print-severity <replaceable>boolean</replaceable>;
		print-category <replaceable>boolean</replaceable>;
	};
	category <replaceable>string</replaceable> { <replaceable>string</replaceable>; ... };
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>LWRES</title>
<LITERALLAYOUT>
lwres {
	listen-on <optional> port <replaceable>integer</replaceable> </optional> {
		( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) <optional> port <replaceable>integer</replaceable> </optional>; ...
	};
	view <replaceable>string</replaceable> <replaceable>optional_class</replaceable>;
	search { <replaceable>string</replaceable>; ... };
	ndots <replaceable>integer</replaceable>;
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>OPTIONS</title>
<LITERALLAYOUT>
options {
	blackhole { <replaceable>address_match_element</replaceable>; ... };
	coresize <replaceable>size</replaceable>;
	datasize <replaceable>size</replaceable>;
	directory <replaceable>quoted_string</replaceable>;
	dump-file <replaceable>quoted_string</replaceable>;
	files <replaceable>size</replaceable>;
	heartbeat-interval <replaceable>integer</replaceable>;
	host-statistics <replaceable>boolean</replaceable>; // not implemented
	interface-interval <replaceable>integer</replaceable>;
	listen-on <optional> port <replaceable>integer</replaceable> </optional> { <replaceable>address_match_element</replaceable>; ... };
	listen-on-v6 <optional> port <replaceable>integer</replaceable> </optional> { <replaceable>address_match_element</replaceable>; ... };
	match-mapped-addresses <replaceable>boolean</replaceable>;
	memstatistics-file <replaceable>quoted_string</replaceable>; // not implemented
	pid-file <replaceable>quoted_string</replaceable>;
	port <replaceable>integer</replaceable>;
	random-device <replaceable>quoted_string</replaceable>;
	recursive-clients <replaceable>integer</replaceable>;
	serial-query-rate <replaceable>integer</replaceable>;
	stacksize <replaceable>size</replaceable>;
	statistics-file <replaceable>quoted_string</replaceable>;
	statistics-interval <replaceable>integer</replaceable>; // not yet implemented
	tcp-clients <replaceable>integer</replaceable>;
	tkey-dhkey <replaceable>quoted_string</replaceable> <replaceable>integer</replaceable>;
	tkey-gssapi-credential <replaceable>quoted_string</replaceable>;
	tkey-domain <replaceable>quoted_string</replaceable>;
	transfers-per-ns <replaceable>integer</replaceable>;
	transfers-in <replaceable>integer</replaceable>;
	transfers-out <replaceable>integer</replaceable>;
	use-ixfr <replaceable>boolean</replaceable>;
	version <replaceable>quoted_string</replaceable>;
	allow-recursion { <replaceable>address_match_element</replaceable>; ... };
	sortlist { <replaceable>address_match_element</replaceable>; ... };
	topology { <replaceable>address_match_element</replaceable>; ... }; // not implemented
	auth-nxdomain <replaceable>boolean</replaceable>; // default changed
	minimal-responses <replaceable>boolean</replaceable>;
	recursion <replaceable>boolean</replaceable>;
	rrset-order {
		<optional> class <replaceable>string</replaceable> </optional> <optional> type <replaceable>string</replaceable> </optional>
		<optional> name <replaceable>quoted_string</replaceable> </optional> <replaceable>string</replaceable> <replaceable>string</replaceable>; ...
	}; // not implemented
	provide-ixfr <replaceable>boolean</replaceable>;
	request-ixfr <replaceable>boolean</replaceable>;
	rfc2308-type1 <replaceable>boolean</replaceable>; // not yet implemented
	additional-from-auth <replaceable>boolean</replaceable>;
	additional-from-cache <replaceable>boolean</replaceable>;
	query-source <replaceable>querysource4</replaceable>;
	query-source-v6 <replaceable>querysource6</replaceable>;
	cleaning-interval <replaceable>integer</replaceable>;
	min-roots <replaceable>integer</replaceable>; // not implemented
	lame-ttl <replaceable>integer</replaceable>;
	max-ncache-ttl <replaceable>integer</replaceable>;
	max-cache-ttl <replaceable>integer</replaceable>;
	transfer-format ( many-answers | one-answer );
	max-cache-size <replaceable>size_no_default</replaceable>;
	check-names ( master | slave | response )
		( fail | warn | ignore ); // not implemented
	cache-file <replaceable>quoted_string</replaceable>;
	root-delegation-only <optional> exclude { <replaceable>quoted_string</replaceable>; ... } </optional>;

	dialup <replaceable>dialuptype</replaceable>;

	allow-query { <replaceable>address_match_element</replaceable>; ... };
	allow-transfer { <replaceable>address_match_element</replaceable>; ... };
	allow-update-forwarding { <replaceable>address_match_element</replaceable>; ... };

	notify <replaceable>notifytype</replaceable>;
	notify-source ( <replaceable>ipv4_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	notify-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	also-notify <optional> port <replaceable>integer</replaceable> </optional> { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> )
		<optional> port <replaceable>integer</replaceable> </optional>; ... };
	allow-notify { <replaceable>address_match_element</replaceable>; ... };

	forward ( first | only );
	forwarders <optional> port <replaceable>integer</replaceable> </optional> {
		( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) <optional> port <replaceable>integer</replaceable> </optional>; ...
	};

	max-transfer-time-in <replaceable>integer</replaceable>;
	max-transfer-time-out <replaceable>integer</replaceable>;
	max-transfer-idle-in <replaceable>integer</replaceable>;
	max-transfer-idle-out <replaceable>integer</replaceable>;
	max-retry-time <replaceable>integer</replaceable>;
	min-retry-time <replaceable>integer</replaceable>;
	max-refresh-time <replaceable>integer</replaceable>;
	min-refresh-time <replaceable>integer</replaceable>;
	sig-validity-interval <replaceable>integer</replaceable>;

	transfer-source ( <replaceable>ipv4_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;

	zone-statistics <replaceable>boolean</replaceable>;

	allow-v6-synthesis { <replaceable>address_match_element</replaceable>; ... };
	deallocate-on-exit <replaceable>boolean</replaceable>; // obsolete
	fake-iquery <replaceable>boolean</replaceable>; // obsolete
	fetch-glue <replaceable>boolean</replaceable>; // obsolete
	has-old-clients <replaceable>boolean</replaceable>; // obsolete
	maintain-ixfr-base <replaceable>boolean</replaceable>; // obsolete
	max-ixfr-log-size <replaceable>size</replaceable>; // obsolete
	multiple-cnames <replaceable>boolean</replaceable>; // obsolete
	named-xfer <replaceable>quoted_string</replaceable>; // obsolete
	serial-queries <replaceable>integer</replaceable>; // obsolete
	treat-cr-as-space <replaceable>boolean</replaceable>; // obsolete
	use-id-pool <replaceable>boolean</replaceable>; // obsolete
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>VIEW</title>
<LITERALLAYOUT>
view <replaceable>string</replaceable> <replaceable>optional_class</replaceable> {
	match-clients { <replaceable>address_match_element</replaceable>; ... };
	match-destinations { <replaceable>address_match_element</replaceable>; ... };
	match-recursive-only <replaceable>boolean</replaceable>;

	key <replaceable>string</replaceable> {
		algorithm <replaceable>string</replaceable>;
		secret <replaceable>string</replaceable>;
	};

	zone <replaceable>string</replaceable> <replaceable>optional_class</replaceable> {
		...
	};

	server ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) {
		...
	};

	trusted-keys {
		<replaceable>string</replaceable> <replaceable>integer</replaceable> <replaceable>integer</replaceable> <replaceable>integer</replaceable> <replaceable>quoted_string</replaceable>; ...
	};

	allow-recursion { <replaceable>address_match_element</replaceable>; ... };
	sortlist { <replaceable>address_match_element</replaceable>; ... };
	topology { <replaceable>address_match_element</replaceable>; ... }; // not implemented
	auth-nxdomain <replaceable>boolean</replaceable>; // default changed
	minimal-responses <replaceable>boolean</replaceable>;
	recursion <replaceable>boolean</replaceable>;
	rrset-order {
		<optional> class <replaceable>string</replaceable> </optional> <optional> type <replaceable>string</replaceable> </optional>
		<optional> name <replaceable>quoted_string</replaceable> </optional> <replaceable>string</replaceable> <replaceable>string</replaceable>; ...
	}; // not implemented
	provide-ixfr <replaceable>boolean</replaceable>;
	request-ixfr <replaceable>boolean</replaceable>;
	rfc2308-type1 <replaceable>boolean</replaceable>; // not yet implemented
	additional-from-auth <replaceable>boolean</replaceable>;
	additional-from-cache <replaceable>boolean</replaceable>;
	query-source <replaceable>querysource4</replaceable>;
	query-source-v6 <replaceable>querysource6</replaceable>;
	cleaning-interval <replaceable>integer</replaceable>;
	min-roots <replaceable>integer</replaceable>; // not implemented
	lame-ttl <replaceable>integer</replaceable>;
	max-ncache-ttl <replaceable>integer</replaceable>;
	max-cache-ttl <replaceable>integer</replaceable>;
	transfer-format ( many-answers | one-answer );
	max-cache-size <replaceable>size_no_default</replaceable>;
	check-names ( master | slave | response )
		( fail | warn | ignore );
	cache-file <replaceable>quoted_string</replaceable>;
	suppress-initial-notify <replaceable>boolean</replaceable>; // not yet implemented
	root-delegation-only <optional> exclude { <replaceable>quoted_string</replaceable>; ... } </optional>;

	dialup <replaceable>dialuptype</replaceable>;

	allow-query { <replaceable>address_match_element</replaceable>; ... };
	allow-transfer { <replaceable>address_match_element</replaceable>; ... };
	allow-update-forwarding { <replaceable>address_match_element</replaceable>; ... };

	notify <replaceable>notifytype</replaceable>;
	notify-source ( <replaceable>ipv4_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	notify-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	also-notify <optional> port <replaceable>integer</replaceable> </optional> { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> )
		<optional> port <replaceable>integer</replaceable> </optional>; ... };
	allow-notify { <replaceable>address_match_element</replaceable>; ... };

	forward ( first | only );
	forwarders <optional> port <replaceable>integer</replaceable> </optional> {
		( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) <optional> port <replaceable>integer</replaceable> </optional>; ...
	};

	max-transfer-time-in <replaceable>integer</replaceable>;
	max-transfer-time-out <replaceable>integer</replaceable>;
	max-transfer-idle-in <replaceable>integer</replaceable>;
	max-transfer-idle-out <replaceable>integer</replaceable>;
	max-retry-time <replaceable>integer</replaceable>;
	min-retry-time <replaceable>integer</replaceable>;
	max-refresh-time <replaceable>integer</replaceable>;
	min-refresh-time <replaceable>integer</replaceable>;
	sig-validity-interval <replaceable>integer</replaceable>;

	transfer-source ( <replaceable>ipv4_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;

	zone-statistics <replaceable>boolean</replaceable>;

	allow-v6-synthesis { <replaceable>address_match_element</replaceable>; ... }; // obsolete
	fetch-glue <replaceable>boolean</replaceable>; // obsolete
	maintain-ixfr-base <replaceable>boolean</replaceable>; // obsolete
	max-ixfr-log-size <replaceable>size</replaceable>; // obsolete
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>ZONE</title>
<LITERALLAYOUT>
zone <replaceable>string</replaceable> <replaceable>optional_class</replaceable> {
	type ( master | slave | stub | hint |
		forward | delegation-only );
	file <replaceable>quoted_string</replaceable>;

	masters <optional> port <replaceable>integer</replaceable> </optional> {
		( <replaceable>ipv4_address</replaceable> <optional>port <replaceable>integer</replaceable></optional> |
		<replaceable>ipv6_address</replaceable> <optional> port <replaceable>integer</replaceable> </optional> ) <optional> key <replaceable>string</replaceable> </optional>; ...
	};

	database <replaceable>string</replaceable>;
	delegation-only <replaceable>boolean</replaceable>;
	check-names ( fail | warn | ignore );
	dialup <replaceable>dialuptype</replaceable>;

	allow-query { <replaceable>address_match_element</replaceable>; ... };
	allow-transfer { <replaceable>address_match_element</replaceable>; ... };
	allow-update { <replaceable>address_match_element</replaceable>; ... };
	allow-update-forwarding { <replaceable>address_match_element</replaceable>; ... };
	update-policy {
		( grant | deny ) <replaceable>string</replaceable>
		( name | subdomain | wildcard | self ) <replaceable>string</replaceable>
		<replaceable>rrtypelist</replaceable>; ...
	};

	notify <replaceable>notifytype</replaceable>;
	notify-source ( <replaceable>ipv4_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	notify-source-v6 ( <replaceable>ipv6_address</replaceable> | * ) <optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	also-notify <optional> port <replaceable>integer</replaceable> </optional> { ( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> )
		<optional> port <replaceable>integer</replaceable> </optional>; ... };
	allow-notify { <replaceable>address_match_element</replaceable>; ... };

	forward ( first | only );
	forwarders <optional> port <replaceable>integer</replaceable> </optional> {
		( <replaceable>ipv4_address</replaceable> | <replaceable>ipv6_address</replaceable> ) <optional> port <replaceable>integer</replaceable> </optional>; ...
	};

	max-transfer-time-in <replaceable>integer</replaceable>;
	max-transfer-time-out <replaceable>integer</replaceable>;
	max-transfer-idle-in <replaceable>integer</replaceable>;
	max-transfer-idle-out <replaceable>integer</replaceable>;
	max-retry-time <replaceable>integer</replaceable>;
	min-retry-time <replaceable>integer</replaceable>;
	max-refresh-time <replaceable>integer</replaceable>;
	min-refresh-time <replaceable>integer</replaceable>;
	sig-validity-interval <replaceable>integer</replaceable>;

	transfer-source ( <replaceable>ipv4_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;
	transfer-source-v6 ( <replaceable>ipv6_address</replaceable> | * )
		<optional> port ( <replaceable>integer</replaceable> | * ) </optional>;

	zone-statistics <replaceable>boolean</replaceable>;

	ixfr-base <replaceable>quoted_string</replaceable>; // obsolete
	ixfr-tmp-file <replaceable>quoted_string</replaceable>; // obsolete
	maintain-ixfr-base <replaceable>boolean</replaceable>; // obsolete
	max-ixfr-log-size <replaceable>size</replaceable>; // obsolete
	pubkey <replaceable>integer</replaceable> <replaceable>integer</replaceable> <replaceable>integer</replaceable> <replaceable>quoted_string</replaceable>; // obsolete
};
</LITERALLAYOUT>
</refsect1>

<refsect1>
<title>FILES</title>
<para>
<filename>/etc/named.conf</filename>
</para>
</refsect1>

<refsect1>
<title>SEE ALSO</title>
<para>
<citerefentry>
<refentrytitle>named</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>rndc</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>BIND 9 Adminstrators Reference Manual</refentrytitle>
</citerefentry>.
</para>
</refsect1>

</refentry>
<!--
 - Local variables:
 - mode: sgml
 - End:
-->
