]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/blob - contrib/bind9/README
Update to version 9.6-ESV-R5 which contains various bug fixes
[FreeBSD/stable/8.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 BIND 9.6-ESV-R5 (Extended Support Version)
46
47         BIND 9.4-ESV-R5 is a maintenance release, fixing bugs in BIND
48         9.6-ESV-R4.
49
50 BIND 9.6.3/BIND 9.6-ESV-R4
51
52         BIND 9.6.3/BIND 9.6-ESV-R4 is a maintenance release, fixing bugs
53         in 9.6.2.
54
55 BIND 9.6.2
56
57         BIND 9.6.2 is a maintenance release, fixing bugs in 9.6.1.
58         It also introduces support for the SHA-2 DNSSEC algorithms,
59         RSASHA256 and RSASHA512.
60
61         Known issues in this release:
62
63         - A validating resolver that has been incorrectly configured with
64           an invalid trust anchor will be unable to resolve names covered
65           by that trust anchor.  In all current versions of BIND 9, such a
66           resolver will also generate significant unnecessary DNS traffic
67           while trying to validate.  The latter problem will be addressed
68           in future BIND 9 releases.  In the meantime, to avoid these
69           problems, exercise caution when configuring "trusted-keys":
70           make sure all keys are correct and current when you add them,
71           and update your configuration in a timely manner when keys
72           roll over.
73
74 BIND 9.6.1
75
76         BIND 9.6.1 is a maintenance release, fixing bugs in 9.6.0.
77
78 BIND 9.6.0
79
80         BIND 9.6.0 includes a number of changes from BIND 9.5 and earlier
81         releases, including:
82
83         Full NSEC3 support
84
85         Automatic zone re-signing
86
87         New update-policy methods tcp-self and 6to4-self
88
89         The BIND 8 resolver library, libbind, has been removed from the
90         BIND 9 distribution and is now available as a separate download.
91
92         Change the default pid file location from /var/run to
93         /var/run/{named,lwresd} for improved chroot/setuid support.
94
95 BIND 9.5.0
96
97         BIND 9.5.0 has a number of new features over 9.4,
98         including:
99
100         GSS-TSIG support (RFC 3645).
101
102         DHCID support.
103
104         Experimental http server and statistics support for named via xml.
105
106         More detailed statistics counters including those supported in BIND 8.
107
108         Faster ACL processing.
109
110         Use Doxygen to generate internal documentation.
111
112         Efficient LRU cache-cleaning mechanism.
113
114         NSID support.
115
116 BIND 9.4.0
117
118         BIND 9.4.0 has a number of new features over 9.3,
119         including:
120
121         Implemented "additional section caching (or acache)", an
122         internal cache framework for additional section content to
123         improve response performance.  Several configuration options
124         were provided to control the behavior.
125
126         New notify type 'master-only'.  Enable notify for master
127         zones only.
128
129         Accept 'notify-source' style syntax for query-source.
130
131         rndc now allows addresses to be set in the server clauses.
132
133         New option "allow-query-cache".  This lets "allow-query"
134         be used to specify the default zone access level rather
135         than having to have every zone override the global value.
136         "allow-query-cache" can be set at both the options and view
137         levels.  If "allow-query-cache" is not set then "allow-recursion"
138         is used if set, otherwise "allow-query" is used if set
139         unless "recursion no;" is set in which case "none;" is used,
140         otherwise the default (localhost; localnets;) is used.
141
142         rndc: the source address can now be specified.
143
144         ixfr-from-differences now takes master and slave in addition
145         to yes and no at the options and view levels.
146
147         Allow the journal's name to be changed via named.conf.
148
149         'rndc notify zone [class [view]]' resend the NOTIFY messages
150         for the specified zone.
151
152         'dig +trace' now randomly selects the next servers to try.
153         Report if there is a bad delegation.
154
155         Improve check-names error messages.
156
157         Make public the function to read a key file, dst_key_read_public().
158
159         dig now returns the byte count for axfr/ixfr.
160                         
161         allow-update is now settable at the options / view level.
162
163         named-checkconf now checks the logging configuration.
164
165         host now can turn on memory debugging flags with '-m'.
166
167         Don't send notify messages to self.
168
169         Perform sanity checks on NS records which refer to 'in zone' names.
170
171         New zone option "notify-delay".  Specify a minimum delay
172         between sets of NOTIFY messages.
173
174         Extend adjusting TTL warning messages.
175
176         Named and named-checkzone can now both check for non-terminal
177         wildcard records.
178
179         "rndc freeze/thaw" now freezes/thaws all zones.
180
181         named-checkconf now check acls to verify that they only
182         refer to existing acls.
183
184         The server syntax has been extended to support a range of
185         servers.
186
187         Report differences between hints and real NS rrset and
188         associated address records.
189
190         Preserve the case of domain names in rdata during zone
191         transfers.
192
193         Restructured the data locking framework using architecture
194         dependent atomic operations (when available), improving
195         response performance on multi-processor machines significantly.
196         x86, x86_64, alpha, powerpc, and mips are currently supported.
197
198         UNIX domain controls are now supported.
199
200         Add support for additional zone file formats for improving
201         loading performance.  The masterfile-format option in
202         named.conf can be used to specify a non-default format.  A
203         separate command named-compilezone was provided to generate
204         zone files in the new format.  Additionally, the -I and -O
205         options for dnssec-signzone specify the input and output
206         formats.
207
208         dnssec-signzone can now randomize signature end times
209         (dnssec-signzone -j jitter).
210
211         Add support for CH A record.
212
213         Add additional zone data constancy checks.  named-checkzone
214         has extended checking of NS, MX and SRV record and the hosts
215         they reference.  named has extended post zone load checks.
216         New zone options: check-mx and integrity-check.
217
218
219         edns-udp-size can now be overridden on a per server basis.
220
221         dig can now specify the EDNS version when making a query.
222
223         Added framework for handling multiple EDNS versions.
224
225         Additional memory debugging support to track size and mctx
226         arguments.
227
228         Detect duplicates of UDP queries we are recursing on and
229         drop them.  New stats category "duplicates".
230
231         "USE INTERNAL MALLOC" is now runtime selectable.
232
233         The lame cache is now done on a <qname,qclass,qtype> basis
234         as some servers only appear to be lame for certain query
235         types.
236
237         Limit the number of recursive clients that can be waiting
238         for a single query (<qname,qtype,qclass>) to resolve.  New
239         options clients-per-query and max-clients-per-query.
240
241         dig: report the number of extra bytes still left in the
242         packet after processing all the records.
243
244         Support for IPSECKEY rdata type.
245
246         Raise the UDP recieve buffer size to 32k if it is less than 32k.
247
248         x86 and x86_64 now have seperate atomic locking implementations.
249
250         named-checkconf now validates update-policy entries.
251
252         Attempt to make the amount of work performed in a iteration
253         self tuning.  The covers nodes clean from the cache per
254         iteration, nodes written to disk when rewriting a master
255         file and nodes destroyed per iteration when destroying a
256         zone or a cache.
257
258         ISC string copy API.
259
260         Automatic empty zone creation for D.F.IP6.ARPA and friends.
261         Note: RFC 1918 zones are not yet covered by this but are
262         likely to be in a future release.
263
264         New options: empty-server, empty-contact, empty-zones-enable
265         and disable-empty-zone.
266
267         dig now has a '-q queryname' and '+showsearch' options.
268
269         host/nslookup now continue (default)/fail on SERVFAIL.
270
271         dig now warns if 'RA' is not set in the answer when 'RD'
272         was set in the query.  host/nslookup skip servers that fail
273         to set 'RA' when 'RD' is set unless a server is explicitly
274         set.
275
276         Integrate contibuted DLZ code into named.
277
278         Integrate contibuted IDN code from JPNIC.
279
280         libbind: corresponds to that from BIND 8.4.7.
281
282 BIND 9.3.0
283
284         BIND 9.3.0 has a number of new features over 9.2,
285         including:
286
287         DNSSEC is now DS based (RFC 3658).
288         See also RFC 3845, doc/draft/draft-ietf-dnsext-dnssec-*.
289
290         DNSSEC lookaside validation.
291
292         check-names is now implemented.
293         rrset-order in more complete.
294
295         IPv4/IPv6 transition support, dual-stack-servers.
296
297         IXFR deltas can now be generated when loading master files,
298         ixfr-from-differences.
299
300         It is now possible to specify the size of a journal, max-journal-size.
301
302         It is now possible to define a named set of master servers to be
303         used in masters clause, masters.
304
305         The advertised EDNS UDP size can now be set, edns-udp-size.
306
307         allow-v6-synthesis has been obsoleted.
308
309         NOTE:
310         * Zones containing MD and MF will now be rejected.
311         * dig, nslookup name. now report "Not Implemented" as
312           NOTIMP rather than NOTIMPL.  This will have impact on scripts
313           that are looking for NOTIMPL.
314
315         libbind: corresponds to that from BIND 8.4.5.
316
317 BIND 9.2.0
318
319         BIND 9.2.0 has a number of new features over 9.1,
320         including:
321
322           - The size of the cache can now be limited using the
323             "max-cache-size" option.
324
325           - The server can now automatically convert RFC1886-style
326             recursive lookup requests into RFC2874-style lookups, 
327             when enabled using the new option "allow-v6-synthesis".
328             This allows stub resolvers that support AAAA records
329             but not A6 record chains or binary labels to perform
330             lookups in domains that make use of these IPv6 DNS
331             features.
332
333           - Performance has been improved.
334
335           - The man pages now use the more portable "man" macros
336             rather than the "mandoc" macros, and are installed
337             by "make install".
338
339           - The named.conf parser has been completely rewritten.
340             It now supports "include" directives in more
341             places such as inside "view" statements, and it no
342             longer has any reserved words.
343
344           - The "rndc status" command is now implemented.
345
346           - rndc can now be configured automatically.
347
348           - A BIND 8 compatible stub resolver library is now
349             included in lib/bind.
350
351           - OpenSSL has been removed from the distribution.  This
352             means that to use DNSSEC, OpenSSL must be installed and
353             the --with-openssl option must be supplied to configure.
354             This does not apply to the use of TSIG, which does not
355             require OpenSSL.
356
357           - The source distribution now builds on Windows.
358             See win32utils/readme1.txt and win32utils/win32-build.txt
359             for details.
360
361         This distribution also includes a new lightweight stub
362         resolver library and associated resolver daemon that fully
363         support forward and reverse lookups of both IPv4 and IPv6
364         addresses.  This library is considered experimental and
365         is not a complete replacement for the BIND 8 resolver library.
366         Applications that use the BIND 8 res_* functions to perform
367         DNS lookups or dynamic updates still need to be linked against
368         the BIND 8 libraries.  For DNS lookups, they can also use the
369         new "getrrsetbyname()" API.
370
371         BIND 9.2 is capable of acting as an authoritative server
372         for DNSSEC secured zones.  This functionality is believed to
373         be stable and complete except for lacking support for
374         verifications involving wildcard records in secure zones.
375
376         When acting as a caching server, BIND 9.2 can be configured
377         to perform DNSSEC secure resolution on behalf of its clients.
378         This part of the DNSSEC implementation is still considered
379         experimental.  For detailed information about the state of the
380         DNSSEC implementation, see the file doc/misc/dnssec.
381
382         There are a few known bugs:
383
384                 On some systems, IPv6 and IPv4 sockets interact in
385                 unexpected ways.  For details, see doc/misc/ipv6.
386                 To reduce the impact of these problems, the server
387                 no longer listens for requests on IPv6 addresses
388                 by default.  If you need to accept DNS queries over
389                 IPv6, you must specify "listen-on-v6 { any; };"
390                 in the named.conf options statement.
391
392                 FreeBSD prior to 4.2 (and 4.2 if running as non-root)
393                 and OpenBSD prior to 2.8 log messages like
394                 "fcntl(8, F_SETFL, 4): Inappropriate ioctl for device".
395                 This is due to a bug in "/dev/random" and impacts the
396                 server's DNSSEC support.
397
398                 OS X 10.1.4 (Darwin 5.4), OS X 10.1.5 (Darwin 5.5) and
399                 OS X 10.2 (Darwin 6.0) reports errors like
400                 "fcntl(3, F_SETFL, 4): Operation not supported by device".
401                 This is due to a bug in "/dev/random" and impacts the
402                 server's DNSSEC support.
403
404                 --with-libtool does not work on AIX.
405
406         A bug in some versions of the Microsoft DNS server can cause zone
407         transfers from a BIND 9 server to a W2K server to fail.  For details,
408         see the "Zone Transfers" section in doc/misc/migration.
409
410         For a detailed list of user-visible changes from
411         previous releases, see the CHANGES file.
412
413
414 Building
415
416         BIND 9 currently requires a UNIX system with an ANSI C compiler,
417         basic POSIX support, and a 64 bit integer type.
418
419         We've had successful builds and tests on the following systems:
420
421                 COMPAQ Tru64 UNIX 5.1B
422                 Fedora Core 6
423                 FreeBSD 4.10, 5.2.1, 6.2
424                 HP-UX 11.11
425                 Mac OS X 10.5
426                 NetBSD 3.x and 4.0-beta
427                 OpenBSD 3.3 and up
428                 Solaris 8, 9, 9 (x86), 10
429                 Ubuntu 7.04, 7.10
430                 Windows XP/2003/2008
431
432         NOTE:  As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
433         Windows, including Windows NT and Windows 2000, are no longer
434         supported.
435
436         We have recent reports from the user community that a supported
437         version of BIND will build and run on the following systems:
438
439                 AIX 4.3, 5L
440                 CentOS 4, 4.5, 5
441                 Darwin 9.0.0d1/ARM
442                 Debian 4
443                 Fedora Core 5, 7
444                 FreeBSD 6.1
445                 HP-UX 11.23 PA
446                 MacOS X 10.4, 10.5
447                 Red Hat Enterprise Linux 4, 5
448                 SCO OpenServer 5.0.6
449                 Slackware 9, 10
450                 SuSE 9, 10
451
452         To build, just
453
454                 ./configure
455                 make
456
457         Do not use a parallel "make".
458
459         Several environment variables that can be set before running
460         configure will affect compilation:
461
462             CC
463                 The C compiler to use.  configure tries to figure
464                 out the right one for supported systems.
465
466             CFLAGS
467                 C compiler flags.  Defaults to include -g and/or -O2
468                 as supported by the compiler.  
469
470             STD_CINCLUDES
471                 System header file directories.  Can be used to specify
472                 where add-on thread or IPv6 support is, for example.
473                 Defaults to empty string.
474
475             STD_CDEFINES
476                 Any additional preprocessor symbols you want defined.
477                 Defaults to empty string.
478
479                 Possible settings:
480                 Change the default syslog facility of named/lwresd.
481                   -DISC_FACILITY=LOG_LOCAL0     
482                 Enable DNSSEC signature chasing support in dig.
483                   -DDIG_SIGCHASE=1 (sets -DDIG_SIGCHASE_TD=1 and
484                                     -DDIG_SIGCHASE_BU=1)
485                 Disable dropping queries from particular well known ports.
486                   -DNS_CLIENT_DROPPORT=0
487                 Sibling glue checking in named-checkzone is enabled by default.
488                 To disable the default check set.  -DCHECK_SIBLING=0
489                 named-checkzone checks out-of-zone addresses by default.
490                 To disable this default set.  -DCHECK_LOCAL=0
491                 To create the default pid files in ${localstatedir}/run rather
492                 than ${localstatedir}/run/{named,lwresd}/ set.
493                   -DNS_RUN_PID_DIR=0
494                 Enable workaround for Solaris kernel bug about /dev/poll
495                   -DISC_SOCKET_USE_POLLWATCH=1
496                   The watch timeout is also configurable, e.g.,
497                   -DISC_SOCKET_POLLWATCH_TIMEOUT=20
498
499             LDFLAGS
500                 Linker flags. Defaults to empty string.
501
502         The following need to be set when cross compiling.
503
504             BUILD_CC
505                 The native C compiler.
506             BUILD_CFLAGS (optional)
507             BUILD_CPPFLAGS (optional)
508                 Possible Settings:
509                 -DNEED_OPTARG=1         (optarg is not declared in <unistd.h>)
510             BUILD_LDFLAGS (optional)
511             BUILD_LIBS (optional)
512
513         To build shared libraries, specify "--with-libtool" on the
514         configure command line.
515
516         For the server to support DNSSEC, you need to build it
517         with crypto support.  You must have OpenSSL 0.9.5a
518         or newer installed and specify "--with-openssl" on the
519         configure command line.  If OpenSSL is installed under
520         a nonstandard prefix, you can tell configure where to
521         look for it using "--with-openssl=/prefix".
522
523         On some platforms it is necessary to explictly request large
524         file support to handle files bigger than 2GB.  This can be
525         done by "--enable-largefile" on the configure command line.
526
527         On some platforms, BIND 9 can be built with multithreading
528         support, allowing it to take advantage of multiple CPUs.
529         You can specify whether to build a multithreaded BIND 9 
530         by specifying "--enable-threads" or "--disable-threads"
531         on the configure command line.  The default is operating
532         system dependent.
533
534         Support for the "fixed" rrset-order option can be enabled
535         or disabled by specifying "--enable-fixed-rrset" or
536         "--disable-fixed-rrset" on the configure command line.
537         The default is "disabled", to reduce memory footprint.
538
539         If your operating system has integrated support for IPv6, it
540         will be used automatically.  If you have installed KAME IPv6
541         separately, use "--with-kame[=PATH]" to specify its location.
542
543         "make install" will install "named" and the various BIND 9 libraries.
544         By default, installation is into /usr/local, but this can be changed
545         with the "--prefix" option when running "configure".
546
547         You may specify the option "--sysconfdir" to set the directory 
548         where configuration files like "named.conf" go by default,
549         and "--localstatedir" to set the default parent directory
550         of "run/named.pid".   For backwards compatibility with BIND 8,
551         --sysconfdir defaults to "/etc" and --localstatedir defaults to
552         "/var" if no --prefix option is given.  If there is a --prefix
553         option, sysconfdir defaults to "$prefix/etc" and localstatedir
554         defaults to "$prefix/var".
555
556         To see additional configure options, run "configure --help".
557         Note that the help message does not reflect the BIND 8 
558         compatibility defaults for sysconfdir and localstatedir.
559
560         If you're planning on making changes to the BIND 9 source, you
561         should also "make depend".  If you're using Emacs, you might find
562         "make tags" helpful.
563
564         If you need to re-run configure please run "make distclean" first.
565         This will ensure that all the option changes take.
566
567         Building with gcc is not supported, unless gcc is the vendor's usual
568         compiler (e.g. the various BSD systems, Linux).
569         
570         Known compiler issues:
571         * gcc-3.2.1 and gcc-3.1.1 is known to cause problems with solaris-x86.
572         * gcc prior to gcc-3.2.3 ultrasparc generates incorrect code at -02.
573         * gcc-3.3.5 powerpc generates incorrect code at -02.
574         * Irix, MipsPRO 7.4.1m is known to cause problems.
575
576         A limited test suite can be run with "make test".  Many of
577         the tests require you to configure a set of virtual IP addresses
578         on your system, and some require Perl; see bin/tests/system/README
579         for details.
580
581         SunOS 4 requires "printf" to be installed to make the shared
582         libraries.  sh-utils-1.16 provides a "printf" which compiles
583         on SunOS 4.
584
585 Documentation
586
587         The BIND 9 Administrator Reference Manual is included with the
588         source distribution in DocBook XML and HTML format, in the
589         doc/arm directory.
590
591         Some of the programs in the BIND 9 distribution have man pages
592         in their directories.  In particular, the command line
593         options of "named" are documented in /bin/named/named.8.
594         There is now also a set of man pages for the lwres library.
595
596         If you are upgrading from BIND 8, please read the migration
597         notes in doc/misc/migration.  If you are upgrading from
598         BIND 4, read doc/misc/migration-4to9.
599
600         Frequently asked questions and their answers can be found in
601         FAQ.
602
603
604 Bug Reports and Mailing Lists
605
606         Bugs reports should be sent to
607
608                 bind9-bugs@isc.org
609
610         To join the BIND Users mailing list, send mail to
611
612                 bind-users-request@isc.org
613
614         archives of which can be found via
615
616                 http://www.isc.org/ops/lists/
617
618         If you're planning on making changes to the BIND 9 source
619         code, you might want to join the BIND Workers mailing list.
620         Send mail to
621
622                 bind-workers-request@isc.org
623
624