]> CyberLeo.Net >> Repos - FreeBSD/releng/9.3.git/blob - contrib/bind9/README
Fix multiple vulnerabilities of ntp.
[FreeBSD/releng/9.3.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.9.5
55
56         BIND 9.9.5 is a maintenance release, and patches the security
57         flaws described in CVE-2013-6320 and CVE-2014-0591.  It also
58         includes the following functional enhancements:
59
60          - "named" now preserves the capitalization of names when
61            responding to queries.
62          - new "dnssec-importkey" command allows the use of offline
63            DNSSEC keys with automatic DNSKEY management.
64          - When re-signing a zone, the new "dnssec-signzone -Q" option
65            drops signatures from keys that are still published but are
66            no longer active.
67          - "named-checkconf -px" will print the contents of configuration
68            files with the shared secrets obscured, making it easier to
69            share configuration (e.g. when submitting a bug report)
70            without revealing private information.
71
72 BIND 9.9.4
73
74         BIND 9.9.4 is a maintenance release, and patches the security
75         flaws described in CVE-2013-3919 and CVE-2013-4854. It also
76         introduces DNS Response Rate Limiting (DNS RRL) as a
77         compile-time option. To use this feature, configure with
78         the "--enable-rrl" option.
79
80 BIND 9.9.3
81
82         BIND 9.9.3 is a maintenance release and patches the security
83         flaws described in CVE-2012-5688, CVE-2012-5689 and CVE-2013-2266.
84
85 BIND 9.9.2
86
87         BIND 9.9.2 is a maintenance release and patches the security
88         flaw described in CVE-2012-4244.
89
90 BIND 9.9.1
91
92         BIND 9.9.1 is a maintenance release.
93
94 BIND 9.9.0
95
96         BIND 9.9.0 includes a number of changes from BIND 9.8 and earlier
97         releases.  New features include:
98
99         - Inline signing, allowing automatic DNSSEC signing of
100           master zones without modification of the zonefile, or 
101           "bump in the wire" signing in slaves.
102         - NXDOMAIN redirection.
103         - New 'rndc flushtree' command clears all data under a given
104           name from the DNS cache.
105         - New 'rndc sync' command dumps pending changes in a dynamic
106           zone to disk without a freeze/thaw cycle.
107         - New 'rndc signing' command displays or clears signing status
108           records in 'auto-dnssec' zones.
109         - NSEC3 parameters for 'auto-dnssec' zones can now be set prior
110           to signing, eliminating the need to initially sign with NSEC.
111         - Startup time improvements on large authoritative servers.
112         - Slave zones are now saved in raw format by default.
113         - Several improvements to response policy zones (RPZ).
114         - Improved hardware scalability by using multiple threads
115           to listen for queries and using finer-grained client locking
116         - The 'also-notify' option now takes the same syntax as
117           'masters', so it can used named masterlists and TSIG keys.
118         - 'dnssec-signzone -D' writes an output file containing only DNSSEC
119           data, which can be included by the primary zone file.
120         - 'dnssec-signzone -R' forces removal of signatures that are
121           not expired but were created by a key which no longer exists.
122         - 'dnssec-signzone -X' allows a separate expiration date to
123           be specified for DNSKEY signatures from other signatures.
124         - New '-L' option to dnssec-keygen, dnssec-settime, and
125           dnssec-keyfromlabel sets the default TTL for the key.
126         - dnssec-dsfromkey now supports reading from standard input,
127           to make it easier to convert DNSKEY to DS.
128         - RFC 1918 reverse zones have been added to the empty-zones
129           table per RFC 6303.
130         - Dynamic updates can now optionally set the zone's SOA serial
131           number to the current UNIX time.
132         - DLZ modules can now retrieve the source IP address of
133           the querying client.
134         - 'request-ixfr' option can now be set at the per-zone level.
135         - 'dig +rrcomments' turns on comments about DNSKEY records,
136           indicating their key ID, algorithm and function
137         - Simplified nsupdate syntax and added readline support
138
139 Building
140
141         BIND 9 currently requires a UNIX system with an ANSI C compiler,
142         basic POSIX support, and a 64 bit integer type.
143
144         We've had successful builds and tests on the following systems:
145
146                 COMPAQ Tru64 UNIX 5.1B
147                 Fedora Core 6
148                 FreeBSD 4.10, 5.2.1, 6.2
149                 HP-UX 11.11
150                 Mac OS X 10.5
151                 NetBSD 3.x, 4.0-beta, 5.0-beta
152                 OpenBSD 3.3 and up
153                 Solaris 8, 9, 9 (x86), 10
154                 Ubuntu 7.04, 7.10
155                 Windows XP/2003/2008
156
157         NOTE:  As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
158         Windows, including Windows NT and Windows 2000, are no longer
159         supported.
160
161         We have recent reports from the user community that a supported
162         version of BIND will build and run on the following systems:
163
164                 AIX 4.3, 5L
165                 CentOS 4, 4.5, 5
166                 Darwin 9.0.0d1/ARM
167                 Debian 4, 5, 6
168                 Fedora Core 5, 7, 8
169                 FreeBSD 6, 7, 8
170                 HP-UX 11.23 PA
171                 MacOS X 10.5, 10.6, 10.7
172                 Red Hat Enterprise Linux 4, 5, 6
173                 SCO OpenServer 5.0.6
174                 Slackware 9, 10
175                 SuSE 9, 10
176
177         To build, just
178
179                 ./configure
180                 make
181
182         Do not use a parallel "make".
183
184         Several environment variables that can be set before running
185         configure will affect compilation:
186
187             CC
188                 The C compiler to use.  configure tries to figure
189                 out the right one for supported systems.
190
191             CFLAGS
192                 C compiler flags.  Defaults to include -g and/or -O2
193                 as supported by the compiler.  Please include '-g'
194                 if you need to set CFLAGS.
195
196             STD_CINCLUDES
197                 System header file directories.  Can be used to specify
198                 where add-on thread or IPv6 support is, for example.
199                 Defaults to empty string.
200
201             STD_CDEFINES
202                 Any additional preprocessor symbols you want defined.
203                 Defaults to empty string.
204
205                 Possible settings:
206                 Change the default syslog facility of named/lwresd.
207                   -DISC_FACILITY=LOG_LOCAL0     
208                 Enable DNSSEC signature chasing support in dig.
209                   -DDIG_SIGCHASE=1 (sets -DDIG_SIGCHASE_TD=1 and
210                                     -DDIG_SIGCHASE_BU=1)
211                 Disable dropping queries from particular well known ports.
212                   -DNS_CLIENT_DROPPORT=0
213                 Sibling glue checking in named-checkzone is enabled by default.
214                 To disable the default check set.  -DCHECK_SIBLING=0
215                 named-checkzone checks out-of-zone addresses by default.
216                 To disable this default set.  -DCHECK_LOCAL=0
217                 To create the default pid files in ${localstatedir}/run rather
218                 than ${localstatedir}/run/{named,lwresd}/ set.
219                   -DNS_RUN_PID_DIR=0
220                 Enable workaround for Solaris kernel bug about /dev/poll
221                   -DISC_SOCKET_USE_POLLWATCH=1
222                   The watch timeout is also configurable, e.g.,
223                   -DISC_SOCKET_POLLWATCH_TIMEOUT=20
224
225             LDFLAGS
226                 Linker flags. Defaults to empty string.
227
228         The following need to be set when cross compiling.
229
230             BUILD_CC
231                 The native C compiler.
232             BUILD_CFLAGS (optional)
233             BUILD_CPPFLAGS (optional)
234                 Possible Settings:
235                 -DNEED_OPTARG=1         (optarg is not declared in <unistd.h>)
236             BUILD_LDFLAGS (optional)
237             BUILD_LIBS (optional)
238
239         To build shared libraries, specify "--with-libtool" on the
240         configure command line.
241
242         For the server to support DNSSEC, you need to build it
243         with crypto support.  You must have OpenSSL 0.9.5a
244         or newer installed and specify "--with-openssl" on the
245         configure command line.  If OpenSSL is installed under
246         a nonstandard prefix, you can tell configure where to
247         look for it using "--with-openssl=/prefix".
248
249         On some platforms it is necessary to explictly request large
250         file support to handle files bigger than 2GB.  This can be
251         done by "--enable-largefile" on the configure command line.
252
253         On some platforms, BIND 9 can be built with multithreading
254         support, allowing it to take advantage of multiple CPUs.
255         You can specify whether to build a multithreaded BIND 9 
256         by specifying "--enable-threads" or "--disable-threads"
257         on the configure command line.  The default is operating
258         system dependent.
259
260         Support for the "fixed" rrset-order option can be enabled
261         or disabled by specifying "--enable-fixed-rrset" or
262         "--disable-fixed-rrset" on the configure command line.
263         The default is "disabled", to reduce memory footprint.
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         Known compiler issues:
297         * gcc-3.2.1 and gcc-3.1.1 is known to cause problems with solaris-x86.
298         * gcc prior to gcc-3.2.3 ultrasparc generates incorrect code at -02.
299         * gcc-3.3.5 powerpc generates incorrect code at -02.
300         * Irix, MipsPRO 7.4.1m is known to cause problems.
301
302         A limited test suite can be run with "make test".  Many of
303         the tests require you to configure a set of virtual IP addresses
304         on your system, and some require Perl; see bin/tests/system/README
305         for details.
306
307         SunOS 4 requires "printf" to be installed to make the shared
308         libraries.  sh-utils-1.16 provides a "printf" which compiles
309         on SunOS 4.
310
311 Known limitations
312
313         Linux requires kernel build 2.6.39 or later to get the
314         performance benefits from using multiple sockets.
315
316 Documentation
317
318         The BIND 9 Administrator Reference Manual is included with the
319         source distribution in DocBook XML and HTML format, in the
320         doc/arm directory.
321
322         Some of the programs in the BIND 9 distribution have man pages
323         in their directories.  In particular, the command line
324         options of "named" are documented in /bin/named/named.8.
325         There is now also a set of man pages for the lwres library.
326
327         If you are upgrading from BIND 8, please read the migration
328         notes in doc/misc/migration.  If you are upgrading from
329         BIND 4, read doc/misc/migration-4to9.
330
331         Frequently asked questions and their answers can be found in
332         FAQ.
333
334         Additional information on various subjects can be found
335         in the other README files.
336
337
338 Change Log
339
340         A detailed list of all changes to BIND 9 is included in the 
341         file CHANGES, with the most recent changes listed first.
342         Change notes include tags indicating the category of the
343         change that was made; these categories are:
344
345            [func]         New feature
346
347            [bug]          General bug fix
348
349            [security]     Fix for a significant security flaw
350
351            [experimental] Used for new features when the syntax
352                           or other aspects of the design are still
353                           in flux and may change
354
355            [port]         Portability enhancement
356
357            [maint]        Updates to built-in data such as root
358                           server addresses and keys
359
360            [tuning]       Changes to built-in configuration defaults
361                           and constants to improve performanceo
362
363            [protocol]     Updates to the DNS protocol such as new
364                           RR types
365
366            [test]         Changes to the automatic tests, not
367                           affecting server functionality
368
369            [cleanup]      Minor corrections and refactoring
370
371            [doc]          Documentation
372
373         In general, [func] and [experimental] tags will only appear
374         in new-feature releases (i.e., those with version numbers
375         ending in zero).  Some new functionality may be backported to
376         older releases on a case-by-case basis.  All other change
377         types may be applied to all currently-supported releases.
378
379
380 Bug Reports and Mailing Lists
381
382         Bugs reports should be sent to
383
384                 bind9-bugs@isc.org
385
386         To join the BIND Users mailing list, send mail to
387
388                 bind-users-request@isc.org
389
390         archives of which can be found via
391
392                 http://www.isc.org/ops/lists/
393
394         If you're planning on making changes to the BIND 9 source
395         code, you might want to join the BIND Workers mailing list.
396         Send mail to
397
398                 bind-workers-request@isc.org
399
400