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