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