]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/bind9/README
- Merged awk upstream that includes a fix for a bug exposed by kmod_syms.mk.
[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         For a summary of functional enhancements in previous
46         releases, see the HISTORY file.
47
48         For a detailed list of user-visible changes from
49         previous releases, see the CHANGES file.
50
51 BIND 9.8.0
52
53         BIND 9.8.0 includes a number of changes from BIND 9.7 and earlier
54         releases.  New features include:
55
56         - Built-in trust anchor for the root zone, which can be
57           switched on via "dnssec-validation auto;"
58         - Support for DNS64.
59         - Support for response policy zones (RPZ).
60         - Support for writable DLZ zones.
61         - Improved ease of configuration of GSS/TSIG for
62           interoperability with Active Directory
63         - Support for GOST signing algorithm for DNSSEC.
64         - Removed RTT Banding from server selection algorithm.
65         - New "static-stub" zone type.
66         - Allow configuration of resolver timeouts via
67           "resolver-query-timeout" option.
68
69 BIND 9.7.0
70
71         BIND 9.7.0 includes a number of changes from BIND 9.6 and earlier
72         releases.  Most are intended to simplify DNSSEC configuration.
73
74         New features include:
75
76         - Fully automatic signing of zones by "named".
77         - Simplified configuration of DNSSEC Lookaside Validation (DLV).
78         - Simplified configuration of Dynamic DNS, using the "ddns-confgen"
79           command line tool or the "local" update-policy option.  (As a side
80           effect, this also makes it easier to configure automatic zone
81           re-signing.)
82         - New named option "attach-cache" that allows multiple views to
83           share a single cache.
84         - DNS rebinding attack prevention.
85         - New default values for dnssec-keygen parameters.
86         - Support for RFC 5011 automated trust anchor maintenance
87         - Smart signing: simplified tools for zone signing and key
88           maintenance.
89         - The "statistics-channels" option is now available on Windows.
90         - A new DNSSEC-aware libdns API for use by non-BIND9 applications
91         - On some platforms, named and other binaries can now print out
92           a stack backtrace on assertion failure, to aid in debugging.
93         - A "tools only" installation mode on Windows, which only installs
94           dig, host, nslookup and nsupdate.
95         - Improved PKCS#11 support, including Keyper support and explicit
96           OpenSSL engine selection.
97
98         Known issues in this release:
99
100         - In rare cases, DNSSEC validation can leak memory.  When this 
101           happens, it will cause an assertion failure when named exits,
102           but is otherwise harmless.  A fix exists, but was too late for
103           this release; it will be included in BIND 9.7.1.
104
105         Compatibility notes:
106
107         - If you had built BIND 9.6 with any of ALLOW_NSEC3PARAM_UPDATE,
108           ALLOW_SECURE_TO_INSECURE or ALLOW_INSECURE_TO_SECURE defined, then
109           you should ensure that all changes that are in progress have
110           completed prior to upgrading to BIND 9.7.  BIND 9.7 implements
111           those features in a way which is not backwards compatible.
112
113         - Prior releases had a bug which caused HMAC-SHA* keys with long
114           secrets to be used incorrectly.  Fixing this bug means that older
115           versions of BIND 9 may fail to interoperate with this version
116           when using TSIG keys.  If this occurs, the new "isc-hmac-fixup"
117           tool will convert a key with a long secret into a form that works
118           correctly with all versions of BIND 9.  See the "isc-hmac-fixup"
119           man page for additional details.
120
121         - Revoking a DNSSEC key with "dnssec-revoke" changes its key ID.
122           It is possible for the new key ID to collide with that of a
123           different key.  Newly generated keys will not have this problem,
124           as "dnssec-keygen" looks for potential collisions before
125           generating keys, but exercise caution if using key revokation
126           with keys that were generated by older versions of BIND 9.  See
127           the Administrator's Reference Manual, section 4.10 ("Dynamic
128           Trust Anchor Management") for more details.
129
130         - A bug was fixed in which a key's scheduled inactivity date was
131           stored incorectly.  Users who participated in the 9.7.0 BETA test
132           and had DNSSEC keys with scheduled inactivity dates will need to
133           reset those keys' dates using "dnssec-settime -I".
134
135 Building
136
137         BIND 9 currently requires a UNIX system with an ANSI C compiler,
138         basic POSIX support, and a 64 bit integer type.
139
140         We've had successful builds and tests on the following systems:
141
142                 COMPAQ Tru64 UNIX 5.1B
143                 Fedora Core 6
144                 FreeBSD 4.10, 5.2.1, 6.2
145                 HP-UX 11.11
146                 Mac OS X 10.5
147                 NetBSD 3.x, 4.0-beta, 5.0-beta
148                 OpenBSD 3.3 and up
149                 Solaris 8, 9, 9 (x86), 10
150                 Ubuntu 7.04, 7.10
151                 Windows XP/2003/2008
152
153         NOTE:  As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
154         Windows, including Windows NT and Windows 2000, are no longer
155         supported.
156
157         We have recent reports from the user community that a supported
158         version of BIND will build and run on the following systems:
159
160                 AIX 4.3, 5L
161                 CentOS 4, 4.5, 5
162                 Darwin 9.0.0d1/ARM
163                 Debian 4
164                 Fedora Core 5, 7
165                 FreeBSD 6.1
166                 HP-UX 11.23 PA
167                 MacOS X 10.4, 10.5
168                 Red Hat Enterprise Linux 4, 5
169                 SCO OpenServer 5.0.6
170                 Slackware 9, 10
171                 SuSE 9, 10
172
173         To build, just
174
175                 ./configure
176                 make
177
178         Do not use a parallel "make".
179
180         Several environment variables that can be set before running
181         configure will affect compilation:
182
183             CC
184                 The C compiler to use.  configure tries to figure
185                 out the right one for supported systems.
186
187             CFLAGS
188                 C compiler flags.  Defaults to include -g and/or -O2
189                 as supported by the compiler.  
190
191             STD_CINCLUDES
192                 System header file directories.  Can be used to specify
193                 where add-on thread or IPv6 support is, for example.
194                 Defaults to empty string.
195
196             STD_CDEFINES
197                 Any additional preprocessor symbols you want defined.
198                 Defaults to empty string.
199
200                 Possible settings:
201                 Change the default syslog facility of named/lwresd.
202                   -DISC_FACILITY=LOG_LOCAL0     
203                 Enable DNSSEC signature chasing support in dig.
204                   -DDIG_SIGCHASE=1 (sets -DDIG_SIGCHASE_TD=1 and
205                                     -DDIG_SIGCHASE_BU=1)
206                 Disable dropping queries from particular well known ports.
207                   -DNS_CLIENT_DROPPORT=0
208                 Sibling glue checking in named-checkzone is enabled by default.
209                 To disable the default check set.  -DCHECK_SIBLING=0
210                 named-checkzone checks out-of-zone addresses by default.
211                 To disable this default set.  -DCHECK_LOCAL=0
212                 To create the default pid files in ${localstatedir}/run rather
213                 than ${localstatedir}/run/{named,lwresd}/ set.
214                   -DNS_RUN_PID_DIR=0
215                 Enable workaround for Solaris kernel bug about /dev/poll
216                   -DISC_SOCKET_USE_POLLWATCH=1
217                   The watch timeout is also configurable, e.g.,
218                   -DISC_SOCKET_POLLWATCH_TIMEOUT=20
219
220             LDFLAGS
221                 Linker flags. Defaults to empty string.
222
223         The following need to be set when cross compiling.
224
225             BUILD_CC
226                 The native C compiler.
227             BUILD_CFLAGS (optional)
228             BUILD_CPPFLAGS (optional)
229                 Possible Settings:
230                 -DNEED_OPTARG=1         (optarg is not declared in <unistd.h>)
231             BUILD_LDFLAGS (optional)
232             BUILD_LIBS (optional)
233
234         To build shared libraries, specify "--with-libtool" on the
235         configure command line.
236
237         For the server to support DNSSEC, you need to build it
238         with crypto support.  You must have OpenSSL 0.9.5a
239         or newer installed and specify "--with-openssl" on the
240         configure command line.  If OpenSSL is installed under
241         a nonstandard prefix, you can tell configure where to
242         look for it using "--with-openssl=/prefix".
243
244         On some platforms it is necessary to explictly request large
245         file support to handle files bigger than 2GB.  This can be
246         done by "--enable-largefile" on the configure command line.
247
248         On some platforms, BIND 9 can be built with multithreading
249         support, allowing it to take advantage of multiple CPUs.
250         You can specify whether to build a multithreaded BIND 9 
251         by specifying "--enable-threads" or "--disable-threads"
252         on the configure command line.  The default is operating
253         system dependent.
254
255         Support for the "fixed" rrset-order option can be enabled
256         or disabled by specifying "--enable-fixed-rrset" or
257         "--disable-fixed-rrset" on the configure command line.
258         The default is "disabled", to reduce memory footprint.
259
260         If your operating system has integrated support for IPv6, it
261         will be used automatically.  If you have installed KAME IPv6
262         separately, use "--with-kame[=PATH]" to specify its location.
263
264         "make install" will install "named" and the various BIND 9 libraries.
265         By default, installation is into /usr/local, but this can be changed
266         with the "--prefix" option when running "configure".
267
268         You may specify the option "--sysconfdir" to set the directory 
269         where configuration files like "named.conf" go by default,
270         and "--localstatedir" to set the default parent directory
271         of "run/named.pid".   For backwards compatibility with BIND 8,
272         --sysconfdir defaults to "/etc" and --localstatedir defaults to
273         "/var" if no --prefix option is given.  If there is a --prefix
274         option, sysconfdir defaults to "$prefix/etc" and localstatedir
275         defaults to "$prefix/var".
276
277         To see additional configure options, run "configure --help".
278         Note that the help message does not reflect the BIND 8 
279         compatibility defaults for sysconfdir and localstatedir.
280
281         If you're planning on making changes to the BIND 9 source, you
282         should also "make depend".  If you're using Emacs, you might find
283         "make tags" helpful.
284
285         If you need to re-run configure please run "make distclean" first.
286         This will ensure that all the option changes take.
287
288         Building with gcc is not supported, unless gcc is the vendor's usual
289         compiler (e.g. the various BSD systems, Linux).
290         
291         Known compiler issues:
292         * gcc-3.2.1 and gcc-3.1.1 is known to cause problems with solaris-x86.
293         * gcc prior to gcc-3.2.3 ultrasparc generates incorrect code at -02.
294         * gcc-3.3.5 powerpc generates incorrect code at -02.
295         * Irix, MipsPRO 7.4.1m is known to cause problems.
296
297         A limited test suite can be run with "make test".  Many of
298         the tests require you to configure a set of virtual IP addresses
299         on your system, and some require Perl; see bin/tests/system/README
300         for details.
301
302         SunOS 4 requires "printf" to be installed to make the shared
303         libraries.  sh-utils-1.16 provides a "printf" which compiles
304         on SunOS 4.
305
306 Documentation
307
308         The BIND 9 Administrator Reference Manual is included with the
309         source distribution in DocBook XML and HTML format, in the
310         doc/arm directory.
311
312         Some of the programs in the BIND 9 distribution have man pages
313         in their directories.  In particular, the command line
314         options of "named" are documented in /bin/named/named.8.
315         There is now also a set of man pages for the lwres library.
316
317         If you are upgrading from BIND 8, please read the migration
318         notes in doc/misc/migration.  If you are upgrading from
319         BIND 4, read doc/misc/migration-4to9.
320
321         Frequently asked questions and their answers can be found in
322         FAQ.
323
324         Additional information on various subjects can be found
325         in the other README files.
326
327
328 Bug Reports and Mailing Lists
329
330         Bugs reports should be sent to
331
332                 bind9-bugs@isc.org
333
334         To join the BIND Users mailing list, send mail to
335
336                 bind-users-request@isc.org
337
338         archives of which can be found via
339
340                 http://www.isc.org/ops/lists/
341
342         If you're planning on making changes to the BIND 9 source
343         code, you might want to join the BIND Workers mailing list.
344         Send mail to
345
346                 bind-workers-request@isc.org
347
348