gsstest: fixed compilation errors
[tridge/bind9.git] / 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 BIND 9.8.0
52
53         DNS64 support (AAAA synthesis only initially).
54
55 BIND 9.7.0
56
57         BIND 9.7.0 includes a number of changes from BIND 9.6 and earlier
58         releases.  Most are intended to simplify DNSSEC configuration.
59
60         New features include:
61
62         - Fully automatic signing of zones by "named".
63         - Simplified configuration of DNSSEC Lookaside Validation (DLV).
64         - Simplified configuration of Dynamic DNS, using the "ddns-confgen"
65           command line tool or the "local" update-policy option.  (As a side
66           effect, this also makes it easier to configure automatic zone
67           re-signing.)
68         - New named option "attach-cache" that allows multiple views to
69           share a single cache.
70         - DNS rebinding attack prevention.
71         - New default values for dnssec-keygen parameters.
72         - Support for RFC 5011 automated trust anchor maintenance
73         - Smart signing: simplified tools for zone signing and key
74           maintenance.
75         - The "statistics-channels" option is now available on Windows.
76         - A new DNSSEC-aware libdns API for use by non-BIND9 applications
77         - On some platforms, named and other binaries can now print out
78           a stack backtrace on assertion failure, to aid in debugging.
79         - A "tools only" installation mode on Windows, which only installs
80           dig, host, nslookup and nsupdate.
81         - Improved PKCS#11 support, including Keyper support and explicit
82           OpenSSL engine selection.
83
84         Known issues in this release:
85
86         - In rare cases, DNSSEC validation can leak memory.  When this 
87           happens, it will cause an assertion failure when named exits,
88           but is otherwise harmless.  A fix exists, but was too late for
89           this release; it will be included in BIND 9.7.1.
90
91         Compatibility notes:
92
93         - If you had built BIND 9.6 with any of ALLOW_NSEC3PARAM_UPDATE,
94           ALLOW_SECURE_TO_INSECURE or ALLOW_INSECURE_TO_SECURE defined, then
95           you should ensure that all changes that are in progress have
96           completed prior to upgrading to BIND 9.7.  BIND 9.7 implements
97           those features in a way which is not backwards compatible.
98
99         - Prior releases had a bug which caused HMAC-SHA* keys with long
100           secrets to be used incorrectly.  Fixing this bug means that older
101           versions of BIND 9 may fail to interoperate with this version
102           when using TSIG keys.  If this occurs, the new "isc-hmac-fixup"
103           tool will convert a key with a long secret into a form that works
104           correctly with all versions of BIND 9.  See the "isc-hmac-fixup"
105           man page for additional details.
106
107         - Revoking a DNSSEC key with "dnssec-revoke" changes its key ID.
108           It is possible for the new key ID to collide with that of a
109           different key.  Newly generated keys will not have this problem,
110           as "dnssec-keygen" looks for potential collisions before
111           generating keys, but exercise caution if using key revokation
112           with keys that were generated by older versions of BIND 9.  See
113           the Administrator's Reference Manual, section 4.10 ("Dynamic
114           Trust Anchor Management") for more details.
115
116         - A bug was fixed in which a key's scheduled inactivity date was
117           stored incorectly.  Users who participated in the 9.7.0 BETA test
118           and had DNSSEC keys with scheduled inactivity dates will need to
119           reset those keys' dates using "dnssec-settime -I".
120
121 Building
122
123         BIND 9 currently requires a UNIX system with an ANSI C compiler,
124         basic POSIX support, and a 64 bit integer type.
125
126         We've had successful builds and tests on the following systems:
127
128                 COMPAQ Tru64 UNIX 5.1B
129                 Fedora Core 6
130                 FreeBSD 4.10, 5.2.1, 6.2
131                 HP-UX 11.11
132                 Mac OS X 10.5
133                 NetBSD 3.x, 4.0-beta, 5.0-beta
134                 OpenBSD 3.3 and up
135                 Solaris 8, 9, 9 (x86), 10
136                 Ubuntu 7.04, 7.10
137                 Windows XP/2003/2008
138
139         NOTE:  As of BIND 9.5.1, 9.4.3, and 9.3.6, older versions of
140         Windows, including Windows NT and Windows 2000, are no longer
141         supported.
142
143         We have recent reports from the user community that a supported
144         version of BIND will build and run on the following systems:
145
146                 AIX 4.3, 5L
147                 CentOS 4, 4.5, 5
148                 Darwin 9.0.0d1/ARM
149                 Debian 4
150                 Fedora Core 5, 7
151                 FreeBSD 6.1
152                 HP-UX 11.23 PA
153                 MacOS X 10.4, 10.5
154                 Red Hat Enterprise Linux 4, 5
155                 SCO OpenServer 5.0.6
156                 Slackware 9, 10
157                 SuSE 9, 10
158
159         To build, just
160
161                 ./configure
162                 make
163
164         Do not use a parallel "make".
165
166         Several environment variables that can be set before running
167         configure will affect compilation:
168
169             CC
170                 The C compiler to use.  configure tries to figure
171                 out the right one for supported systems.
172
173             CFLAGS
174                 C compiler flags.  Defaults to include -g and/or -O2
175                 as supported by the compiler.  
176
177             STD_CINCLUDES
178                 System header file directories.  Can be used to specify
179                 where add-on thread or IPv6 support is, for example.
180                 Defaults to empty string.
181
182             STD_CDEFINES
183                 Any additional preprocessor symbols you want defined.
184                 Defaults to empty string.
185
186                 Possible settings:
187                 Change the default syslog facility of named/lwresd.
188                   -DISC_FACILITY=LOG_LOCAL0     
189                 Enable DNSSEC signature chasing support in dig.
190                   -DDIG_SIGCHASE=1 (sets -DDIG_SIGCHASE_TD=1 and
191                                     -DDIG_SIGCHASE_BU=1)
192                 Disable dropping queries from particular well known ports.
193                   -DNS_CLIENT_DROPPORT=0
194                 Sibling glue checking in named-checkzone is enabled by default.
195                 To disable the default check set.  -DCHECK_SIBLING=0
196                 named-checkzone checks out-of-zone addresses by default.
197                 To disable this default set.  -DCHECK_LOCAL=0
198                 To create the default pid files in ${localstatedir}/run rather
199                 than ${localstatedir}/run/{named,lwresd}/ set.
200                   -DNS_RUN_PID_DIR=0
201                 Enable workaround for Solaris kernel bug about /dev/poll
202                   -DISC_SOCKET_USE_POLLWATCH=1
203                   The watch timeout is also configurable, e.g.,
204                   -DISC_SOCKET_POLLWATCH_TIMEOUT=20
205
206             LDFLAGS
207                 Linker flags. Defaults to empty string.
208
209         The following need to be set when cross compiling.
210
211             BUILD_CC
212                 The native C compiler.
213             BUILD_CFLAGS (optional)
214             BUILD_CPPFLAGS (optional)
215                 Possible Settings:
216                 -DNEED_OPTARG=1         (optarg is not declared in <unistd.h>)
217             BUILD_LDFLAGS (optional)
218             BUILD_LIBS (optional)
219
220         To build shared libraries, specify "--with-libtool" on the
221         configure command line.
222
223         For the server to support DNSSEC, you need to build it
224         with crypto support.  You must have OpenSSL 0.9.5a
225         or newer installed and specify "--with-openssl" on the
226         configure command line.  If OpenSSL is installed under
227         a nonstandard prefix, you can tell configure where to
228         look for it using "--with-openssl=/prefix".
229
230         On some platforms it is necessary to explictly request large
231         file support to handle files bigger than 2GB.  This can be
232         done by "--enable-largefile" on the configure command line.
233
234         On some platforms, BIND 9 can be built with multithreading
235         support, allowing it to take advantage of multiple CPUs.
236         You can specify whether to build a multithreaded BIND 9 
237         by specifying "--enable-threads" or "--disable-threads"
238         on the configure command line.  The default is operating
239         system dependent.
240
241         Support for the "fixed" rrset-order option can be enabled
242         or disabled by specifying "--enable-fixed-rrset" or
243         "--disable-fixed-rrset" on the configure command line.
244         The default is "disabled", to reduce memory footprint.
245
246         If your operating system has integrated support for IPv6, it
247         will be used automatically.  If you have installed KAME IPv6
248         separately, use "--with-kame[=PATH]" to specify its location.
249
250         "make install" will install "named" and the various BIND 9 libraries.
251         By default, installation is into /usr/local, but this can be changed
252         with the "--prefix" option when running "configure".
253
254         You may specify the option "--sysconfdir" to set the directory 
255         where configuration files like "named.conf" go by default,
256         and "--localstatedir" to set the default parent directory
257         of "run/named.pid".   For backwards compatibility with BIND 8,
258         --sysconfdir defaults to "/etc" and --localstatedir defaults to
259         "/var" if no --prefix option is given.  If there is a --prefix
260         option, sysconfdir defaults to "$prefix/etc" and localstatedir
261         defaults to "$prefix/var".
262
263         To see additional configure options, run "configure --help".
264         Note that the help message does not reflect the BIND 8 
265         compatibility defaults for sysconfdir and localstatedir.
266
267         If you're planning on making changes to the BIND 9 source, you
268         should also "make depend".  If you're using Emacs, you might find
269         "make tags" helpful.
270
271         If you need to re-run configure please run "make distclean" first.
272         This will ensure that all the option changes take.
273
274         Building with gcc is not supported, unless gcc is the vendor's usual
275         compiler (e.g. the various BSD systems, Linux).
276         
277         Known compiler issues:
278         * gcc-3.2.1 and gcc-3.1.1 is known to cause problems with solaris-x86.
279         * gcc prior to gcc-3.2.3 ultrasparc generates incorrect code at -02.
280         * gcc-3.3.5 powerpc generates incorrect code at -02.
281         * Irix, MipsPRO 7.4.1m is known to cause problems.
282
283         A limited test suite can be run with "make test".  Many of
284         the tests require you to configure a set of virtual IP addresses
285         on your system, and some require Perl; see bin/tests/system/README
286         for details.
287
288         SunOS 4 requires "printf" to be installed to make the shared
289         libraries.  sh-utils-1.16 provides a "printf" which compiles
290         on SunOS 4.
291
292 Documentation
293
294         The BIND 9 Administrator Reference Manual is included with the
295         source distribution in DocBook XML and HTML format, in the
296         doc/arm directory.
297
298         Some of the programs in the BIND 9 distribution have man pages
299         in their directories.  In particular, the command line
300         options of "named" are documented in /bin/named/named.8.
301         There is now also a set of man pages for the lwres library.
302
303         If you are upgrading from BIND 8, please read the migration
304         notes in doc/misc/migration.  If you are upgrading from
305         BIND 4, read doc/misc/migration-4to9.
306
307         Frequently asked questions and their answers can be found in
308         FAQ.
309
310         Additional information on various subjects can be found
311         in the other README files.
312
313
314 Bug Reports and Mailing Lists
315
316         Bugs reports should be sent to
317
318                 bind9-bugs@isc.org
319
320         To join the BIND Users mailing list, send mail to
321
322                 bind-users-request@isc.org
323
324         archives of which can be found via
325
326                 http://www.isc.org/ops/lists/
327
328         If you're planning on making changes to the BIND 9 source
329         code, you might want to join the BIND Workers mailing list.
330         Send mail to
331
332                 bind-workers-request@isc.org
333
334