3 BIND version 9 is a major rewrite of nearly all aspects of the
4 underlying BIND architecture. Some of the important features of
9 TSIG (signed DNS requests)
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
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
33 Sun Microsystems, Inc.
35 Compaq Computer Corporation
37 Process Software Corporation
38 Silicon Graphics, Inc.
39 Network Associates, Inc.
40 U.S. Defense Information Systems Agency
42 Stichting NLnet - NLnet Foundation
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.
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
58 - New named option "attach-cache" that allows multiple views to
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
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.
83 BIND 9.6.0 includes a number of changes from BIND 9.5 and earlier
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.
100 BIND 9.5.0 has a number of new features over 9.4,
103 GSS-TSIG support (RFC 3645).
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.
121 BIND 9.4.0 has a number of new features over 9.3,
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
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.
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
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
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
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
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
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
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
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
279 Integrate contibuted DLZ code into named.
281 Integrate contibuted IDN code from JPNIC.
283 libbind: corresponds to that from BIND 8.4.7.
287 BIND 9.3.0 has a number of new features over 9.2,
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.
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.
322 BIND 9.2.0 has a number of new features over 9.1,
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
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
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
360 - The source distribution now builds on Windows.
361 See win32utils/readme1.txt and win32utils/win32-build.txt
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.
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
426 FreeBSD 4.10, 5.2.1, 6.2
429 NetBSD 3.x, 4.0-beta, 5.0-beta
431 Solaris 8, 9, 9 (x86), 10
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
439 We have recent reports from the user community that a supported
440 version of BIND will build and run on the following systems:
450 Red Hat Enterprise Linux 4, 5
460 Do not use a parallel "make".
462 Several environment variables that can be set before running
463 configure will affect compilation:
466 The C compiler to use. configure tries to figure
467 out the right one for supported systems.
470 C compiler flags. Defaults to include -g and/or -O2
471 as supported by the compiler.
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.
479 Any additional preprocessor symbols you want defined.
480 Defaults to empty string.
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
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.
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
503 Linker flags. Defaults to empty string.
505 The following need to be set when cross compiling.
508 The native C compiler.
509 BUILD_CFLAGS (optional)
510 BUILD_CPPFLAGS (optional)
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
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
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).
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
584 SunOS 4 requires "printf" to be installed to make the shared
585 libraries. sh-utils-1.16 provides a "printf" which compiles
590 The BIND 9 Administrator Reference Manual is included with the
591 source distribution in DocBook XML and HTML format, in the
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
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
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.
628 bind-workers-request@isc.org