]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bind9/README
This commit was generated by cvs2svn to compensate for changes in r135446,
[FreeBSD/FreeBSD.git] / contrib / bind9 / README
1 BIND 9
2
3         BIND version 9 is a major rewrite of nearly all aspects of the
4         underlying BIND architecture.  Some of the important features of
5         BIND 9 are:
6
7                 - DNS Security
8                         DNSSEC (signed zones)
9                         TSIG (signed DNS requests)
10
11                 - IP version 6
12                         Answers DNS queries on IPv6 sockets
13                         IPv6 resource records (AAAA)
14                         Experimental IPv6 Resolver Library
15
16                 - DNS Protocol Enhancements
17                         IXFR, DDNS, Notify, EDNS0
18                         Improved standards conformance
19
20                 - Views
21                         One server process can provide multiple "views" of
22                         the DNS namespace, e.g. an "inside" view to certain
23                         clients, and an "outside" view to others.
24
25                 - Multiprocessor Support
26
27                 - Improved Portability Architecture
28
29
30         BIND version 9 development has been underwritten by the following
31         organizations:
32
33                 Sun Microsystems, Inc.
34                 Hewlett Packard
35                 Compaq Computer Corporation
36                 IBM
37                 Process Software Corporation
38                 Silicon Graphics, Inc.
39                 Network Associates, Inc.
40                 U.S. Defense Information Systems Agency
41                 USENIX Association
42                 Stichting NLnet - NLnet Foundation
43                 Nominum, Inc.
44
45
46 BIND 9.3.0
47
48         BIND 9.3.0 has a number of new features over 9.2,
49         including:
50
51         DNSSEC is now DS based (RFC 3658).
52         See also RFC 3845, doc/draft/draft-ietf-dnsext-dnssec-*.
53
54         DNSSEC lookaside validation.
55
56         check-names is now implemented.
57         rrset-order in more complete.
58
59         IPv4/IPv6 transition support, dual-stack-servers.
60
61         IXFR deltas can now be generated when loading master files,
62         ixfr-from-differences.
63
64         It is now possible to specify the size of a journal, max-journal-size.
65
66         It is now possible to define a named set of master servers to be
67         used in masters clause, masters.
68
69         The advertised EDNS UDP size can now be set, edns-udp-size.
70
71         allow-v6-synthesis has been obsoleted.
72
73         NOTE:
74         * Zones containing MD and MF will now be rejected.
75         * dig, nslookup name. now report "Not Implemented" as
76           NOTIMP rather than NOTIMPL.  This will have impact on scripts
77           that are looking for NOTIMPL.
78
79         libbind: corresponds to that from BIND 8.4.5.
80
81 BIND 9.2.0
82
83         BIND 9.2.0 has a number of new features over 9.1,
84         including:
85
86           - The size of the cache can now be limited using the
87             "max-cache-size" option.
88
89           - The server can now automatically convert RFC1886-style
90             recursive lookup requests into RFC2874-style lookups, 
91             when enabled using the new option "allow-v6-synthesis".
92             This allows stub resolvers that support AAAA records
93             but not A6 record chains or binary labels to perform
94             lookups in domains that make use of these IPv6 DNS
95             features.
96
97           - Performance has been improved.
98
99           - The man pages now use the more portable "man" macros
100             rather than the "mandoc" macros, and are installed
101             by "make install".
102
103           - The named.conf parser has been completely rewritten.
104             It now supports "include" directives in more
105             places such as inside "view" statements, and it no
106             longer has any reserved words.
107
108           - The "rndc status" command is now implemented.
109
110           - rndc can now be configured automatically.
111
112           - A BIND 8 compatible stub resolver library is now
113             included in lib/bind.
114
115           - OpenSSL has been removed from the distribution.  This
116             means that to use DNSSEC, OpenSSL must be installed and
117             the --with-openssl option must be supplied to configure.
118             This does not apply to the use of TSIG, which does not
119             require OpenSSL.
120
121           - The source distribution now builds on Windows NT/2000.
122             See win32utils/readme1.txt and win32utils/win32-build.txt
123             for details.
124
125         This distribution also includes a new lightweight stub
126         resolver library and associated resolver daemon that fully
127         support forward and reverse lookups of both IPv4 and IPv6
128         addresses.  This library is considered experimental and
129         is not a complete replacement for the BIND 8 resolver library.
130         Applications that use the BIND 8 res_* functions to perform
131         DNS lookups or dynamic updates still need to be linked against
132         the BIND 8 libraries.  For DNS lookups, they can also use the
133         new "getrrsetbyname()" API.
134
135         BIND 9.2 is capable of acting as an authoritative server
136         for DNSSEC secured zones.  This functionality is believed to
137         be stable and complete except for lacking support for
138         verifications involving wildcard records in secure zones.
139
140         When acting as a caching server, BIND 9.2 can be configured
141         to perform DNSSEC secure resolution on behalf of its clients.
142         This part of the DNSSEC implementation is still considered
143         experimental.  For detailed information about the state of the
144         DNSSEC implementation, see the file doc/misc/dnssec.
145
146         There are a few known bugs:
147
148                 On some systems, IPv6 and IPv4 sockets interact in
149                 unexpected ways.  For details, see doc/misc/ipv6.
150                 To reduce the impact of these problems, the server
151                 no longer listens for requests on IPv6 addresses
152                 by default.  If you need to accept DNS queries over
153                 IPv6, you must specify "listen-on-v6 { any; };"
154                 in the named.conf options statement.
155
156                 FreeBSD prior to 4.2 (and 4.2 if running as non-root)
157                 and OpenBSD prior to 2.8 log messages like
158                 "fcntl(8, F_SETFL, 4): Inappropriate ioctl for device".
159                 This is due to a bug in "/dev/random" and impacts the
160                 server's DNSSEC support.
161
162                 OS X 10.1.4 (Darwin 5.4), OS X 10.1.5 (Darwin 5.5) and
163                 OS X 10.2 (Darwin 6.0) reports errors like
164                 "fcntl(3, F_SETFL, 4): Operation not supported by device".
165                 This is due to a bug in "/dev/random" and impacts the
166                 server's DNSSEC support.
167
168                 --with-libtool does not work on AIX.
169
170         A bug in the Windows 2000 DNS server can cause zone transfers
171         from a BIND 9 server to a W2K server to fail.  For details,
172         see the "Zone Transfers" section in doc/misc/migration.
173
174         For a detailed list of user-visible changes from
175         previous releases, see the CHANGES file.
176
177
178 Building
179
180         BIND 9 currently requires a UNIX system with an ANSI C compiler,
181         basic POSIX support, and a 64 bit integer type.
182
183         We've had successful builds and tests on the following systems:
184
185                 COMPAQ Tru64 UNIX 5.1B
186                 FreeBSD 4.10, 5.2.1
187                 HP-UX 11.11
188                 NetBSD 1.5
189                 Slackware Linux 8.1
190                 Solaris 8, 9, 9 (x86)
191                 Windows NT/2000/XP/2003
192
193         Additionally, we have unverified reports of success building
194         previous versions of BIND 9 from users of the following systems:
195
196                 AIX 5L
197                 SuSE Linux 7.0
198                 Slackware Linux 7.x, 8.0
199                 Red Hat Linux 7.1
200                 Debian GNU/Linux 2.2 and 3.0
201                 Mandrake 8.1
202                 OpenBSD 2.6, 2.8, 2.9
203                 UnixWare 7.1.1
204                 HP-UX 10.20
205                 BSD/OS 4.2
206                 Mac OS X 10.1
207
208         To build, just
209
210                 ./configure
211                 make
212
213         Do not use a parallel "make".
214
215         Several environment variables that can be set before running
216         configure will affect compilation:
217
218             CC
219                 The C compiler to use.  configure tries to figure
220                 out the right one for supported systems.
221
222             CFLAGS
223                 C compiler flags.  Defaults to include -g and/or -O2
224                 as supported by the compiler.  
225
226             STD_CINCLUDES
227                 System header file directories.  Can be used to specify
228                 where add-on thread or IPv6 support is, for example.
229                 Defaults to empty string.
230
231             STD_CDEFINES
232                 Any additional preprocessor symbols you want defined.
233                 Defaults to empty string.
234
235                 Possible settings:
236                 Change the default syslog facility of named/lwresd.
237                   -DISC_FACILITY=LOG_LOCAL0     
238                 Enable DNSSEC signature chasing support in dig.
239                   -DDIG_SIGCHASE=1 (sets -DDIG_SIGCHASE_TD=1 and
240                                     -DDIG_SIGCHASE_BU=1)
241
242             LDFLAGS
243                 Linker flags. Defaults to empty string.
244
245         To build shared libraries, specify "--with-libtool" on the
246         configure command line.
247
248         For the server to support DNSSEC, you need to build it
249         with crypto support.  You must have OpenSSL 0.9.5a
250         or newer installed and specify "--with-openssl" on the
251         configure command line.  If OpenSSL is installed under
252         a nonstandard prefix, you can tell configure where to
253         look for it using "--with-openssl=/prefix".
254
255         To build libbind (the BIND 8 resolver library), specify
256         "--enable-libbind" on the configure command line.
257
258         On some platforms, BIND 9 can be built with multithreading
259         support, allowing it to take advantage of multiple CPUs.
260         You can specify whether to build a multithreaded BIND 9 
261         by specifying "--enable-threads" or "--disable-threads"
262         on the configure command line.  The default is operating
263         system dependent.
264
265         If your operating system has integrated support for IPv6, it
266         will be used automatically.  If you have installed KAME IPv6
267         separately, use "--with-kame[=PATH]" to specify its location.
268
269         "make install" will install "named" and the various BIND 9 libraries.
270         By default, installation is into /usr/local, but this can be changed
271         with the "--prefix" option when running "configure".
272
273         You may specify the option "--sysconfdir" to set the directory 
274         where configuration files like "named.conf" go by default,
275         and "--localstatedir" to set the default parent directory
276         of "run/named.pid".   For backwards compatibility with BIND 8,
277         --sysconfdir defaults to "/etc" and --localstatedir defaults to
278         "/var" if no --prefix option is given.  If there is a --prefix
279         option, sysconfdir defaults to "$prefix/etc" and localstatedir
280         defaults to "$prefix/var".
281
282         To see additional configure options, run "configure --help".
283         Note that the help message does not reflect the BIND 8 
284         compatibility defaults for sysconfdir and localstatedir.
285
286         If you're planning on making changes to the BIND 9 source, you
287         should also "make depend".  If you're using Emacs, you might find
288         "make tags" helpful.
289
290         If you need to re-run configure please run "make distclean" first.
291         This will ensure that all the option changes take.
292
293         Building with gcc is not supported, unless gcc is the vendor's usual
294         compiler (e.g. the various BSD systems, Linux).
295         
296         * gcc-3.2.1 and gcc-3.1.1 is known to cause problems with solaris-x86.
297         * gcc prior to gcc-3.2.3 ultrasparc generates incorrect code at -02.
298
299         A limited test suite can be run with "make test".  Many of
300         the tests require you to configure a set of virtual IP addresses
301         on your system, and some require Perl; see bin/tests/system/README
302         for details.
303
304
305 Documentation
306
307         The BIND 9 Administrator Reference Manual is included with the
308         source distribution in DocBook XML and HTML format, in the
309         doc/arm directory.
310
311         Some of the programs in the BIND 9 distribution have man pages
312         in their directories.  In particular, the command line
313         options of "named" are documented in /bin/named/named.8.
314         There is now also a set of man pages for the lwres library.
315
316         If you are upgrading from BIND 8, please read the migration
317         notes in doc/misc/migration.  If you are upgrading from
318         BIND 4, read doc/misc/migration-4to9.
319
320         Frequently asked questions and their answers can be found in
321         FAQ.
322
323
324 Bug Reports and Mailing Lists
325
326         Bugs reports should be sent to
327
328                 bind9-bugs@isc.org
329
330         To join the BIND Users mailing list, send mail to
331
332                 bind-users-request@isc.org
333
334         archives of which can be found via
335
336                 http://www.isc.org/ops/lists/
337
338         If you're planning on making changes to the BIND 9 source
339         code, you might want to join the BIND Workers mailing list.
340         Send mail to
341
342                 bind-workers-request@isc.org
343
344