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