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