migration revision 59c0977bedf9af5a47682655d36c6000ac1a3a4a
fa9e4066f08beec538e775443c5be79dd423fcabahrensCopyright (C) 2004, 2007, 2008 Internet Systems Consortium, Inc. ("ISC")
fa9e4066f08beec538e775443c5be79dd423fcabahrensCopyright (C) 2000, 2001, 2003 Internet Software Consortium.
fa9e4066f08beec538e775443c5be79dd423fcabahrensSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock BIND 8 to BIND 9 Migration Notes
fa9e4066f08beec538e775443c5be79dd423fcabahrensBIND 9 is designed to be mostly upwards compatible with BIND 8, but
fa9e4066f08beec538e775443c5be79dd423fcabahrensthere is still a number of caveats you should be aware of when
fa9e4066f08beec538e775443c5be79dd423fcabahrensupgrading an existing BIND 8 installation to use BIND 9.
fa9e4066f08beec538e775443c5be79dd423fcabahrens1. Configuration File Compatibility
fa9e4066f08beec538e775443c5be79dd423fcabahrens1.1. Unimplemented Options and Changed Defaults
fa9e4066f08beec538e775443c5be79dd423fcabahrensBIND 9 supports most, but not all of the named.conf options of BIND 8.
fa9e4066f08beec538e775443c5be79dd423fcabahrensFor a complete list of implemented options, see doc/misc/options.
fa9e4066f08beec538e775443c5be79dd423fcabahrensIf your named.conf file uses an unimplemented option, named will log a
fa9e4066f08beec538e775443c5be79dd423fcabahrenswarning message. A message is also logged about each option whose
fa9e4066f08beec538e775443c5be79dd423fcabahrensdefault has changed unless the option is set explicitly in named.conf.
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe default of the "transfer-format" option has changed from
fa9e4066f08beec538e775443c5be79dd423fcabahrens"one-answer" to "many-answers". If you have slave servers that do not
fa9e4066f08beec538e775443c5be79dd423fcabahrensunderstand the many-answers zone transfer format (e.g., BIND 4.9.5 or
fa9e4066f08beec538e775443c5be79dd423fcabahrensolder) you need to explicitly specify "transfer-format one-answer;" in
fa9e4066f08beec538e775443c5be79dd423fcabahrenseither the options block or a server statement.
fa9e4066f08beec538e775443c5be79dd423fcabahrensBIND 9.4 onwards implements "allow-query-cache". The "allow-query"
fa9e4066f08beec538e775443c5be79dd423fcabahrensoption is no longer used to specify access to the cache. The
fa9e4066f08beec538e775443c5be79dd423fcabahrens"allow-query" option continues to specify which hosts are allowed
fa9e4066f08beec538e775443c5be79dd423fcabahrensto ask ordinary DNS questions. The new "allow-query-cache" option
fa9e4066f08beec538e775443c5be79dd423fcabahrensis used to specify which hosts are allowed to get answers from the
fa9e4066f08beec538e775443c5be79dd423fcabahrenscache. Since BIND 9.4.1, if "allow-query-cache" is not set then
fa9e4066f08beec538e775443c5be79dd423fcabahrens"allow-recursion" is used if it is set, otherwise "allow-query" is
fa9e4066f08beec538e775443c5be79dd423fcabahrensused if it is set, otherwise the default localnets and localhost
fa9e4066f08beec538e775443c5be79dd423fcabahrens1.2. Handling of Configuration File Errors
fa9e4066f08beec538e775443c5be79dd423fcabahrensIn BIND 9, named refuses to start if it detects an error in
fa9e4066f08beec538e775443c5be79dd423fcabahrensnamed.conf. Earlier versions would start despite errors, causing the
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockserver to run with a partial configuration. Errors detected during
fa9e4066f08beec538e775443c5be79dd423fcabahrenssubsequent reloads do not cause the server to exit.
fa9e4066f08beec538e775443c5be79dd423fcabahrensErrors in master files do not cause the server to exit, but they
fa9e4066f08beec538e775443c5be79dd423fcabahrensdo cause the zone not to load.
fa9e4066f08beec538e775443c5be79dd423fcabahrens1.3. Logging
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe set of logging categories in BIND 9 is different from that
fa9e4066f08beec538e775443c5be79dd423fcabahrensin BIND 8. If you have customised your logging on a per-category
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockbasis, you need to modify your logging statement to use the
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrocknew categories.
fa9e4066f08beec538e775443c5be79dd423fcabahrensAnother difference is that the "logging" statement only takes effect
ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768johansenafter the entire named.conf file has been read. This means that when
ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768johansenthe server starts up, any messages about errors in the configuration
0e8c61582669940ab28fea7e6dd2935372681236maybeefile are always logged to the default destination (syslog) when the
0e8c61582669940ab28fea7e6dd2935372681236maybeeserver first starts up, regardless of the contents of the "logging"
ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768johansenstatement. In BIND 8, the new logging configuration took effect
fa9e4066f08beec538e775443c5be79dd423fcabahrensimmediately after the "logging" statement was read.
fa9e4066f08beec538e775443c5be79dd423fcabahrens1.4. Notify messages and Refresh queries
fa9e4066f08beec538e775443c5be79dd423fcabahrensThe source address and port for these is now controlled by
fa9e4066f08beec538e775443c5be79dd423fcabahrens"notify-source" and "transfer-source", respectively, rather that
13506d1eefbbc37e2f12a0528831d9f6d4c361d7maybeequery-source as in BIND 8.
0e8c61582669940ab28fea7e6dd2935372681236maybee1.5. Multiple Classes.
0e8c61582669940ab28fea7e6dd2935372681236maybeeMultiple classes have to be put into explicit views for each class.
ad23a2db4cfc94c0ed1d58554479ce8d2e7e5768johansen2. Zone File Compatibility
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock2.1. Strict RFC1035 Interpretation of TTLs in Zone Files
fa9e4066f08beec538e775443c5be79dd423fcabahrensBIND 9 strictly complies with the RFC1035 and RFC2308 rules regarding
fa9e4066f08beec538e775443c5be79dd423fcabahrensomitted TTLs in zone files. Omitted TTLs are replaced by the value
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockspecified with the $TTL directive, or by the previous explicit TTL if
6b4acc8bd9d480535a4d057e291dc7c049f664d9ahrensthere is no $TTL directive.
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockIf there is no $TTL directive and the first RR in the file does not
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockhave an explicit TTL field, the zone file is illegal according to
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrockRFC1035 since the TTL of the first RR is undefined. Unfortunately,
fa9e4066f08beec538e775443c5be79dd423fcabahrensBIND 4 and many versions of BIND 8 accept such files without warning
fa9e4066f08beec538e775443c5be79dd423fcabahrensand use the value of the SOA MINTTL field as a default for missing TTL
c717a56157ae0e6fca6a1e3689ae1edc385716a3maybeeBIND 9.0 and 9.1 completely refused to load such files. BIND 9.2
c717a56157ae0e6fca6a1e3689ae1edc385716a3maybeeemulates the nonstandard BIND 4/8 SOA MINTTL behaviour and loads the
c717a56157ae0e6fca6a1e3689ae1edc385716a3maybeefiles anyway (provided the SOA is the first record in the file), but
c717a56157ae0e6fca6a1e3689ae1edc385716a3maybeewill issue the warning message "no TTL specified; using SOA MINTTL
fa9e4066f08beec538e775443c5be79dd423fcabahrensTo avoid problems, we recommend that you use a $TTL directive in each
ea8dc4b6d2251b437950c0056bc626b311c73c27eschrock2.2. Periods in SOA Serial Numbers Deprecated
fa9e4066f08beec538e775443c5be79dd423fcabahrensSome versions of BIND allow SOA serial numbers with an embedded
fa9e4066f08beec538e775443c5be79dd423fcabahrensperiod, like "3.002", and convert them into integers in a rather
fa9e4066f08beec538e775443c5be79dd423fcabahrensunintuitive way. This feature is not supported by BIND 9; serial
fa9e4066f08beec538e775443c5be79dd423fcabahrensnumbers must be integers.
fa9e4066f08beec538e775443c5be79dd423fcabahrens2.3. Handling of Unbalanced Quotes
fa9e4066f08beec538e775443c5be79dd423fcabahrensTXT records with unbalanced quotes, like 'host TXT "foo', were not
fa9e4066f08beec538e775443c5be79dd423fcabahrenstreated as errors in some versions of BIND. If your zone files
fa9e4066f08beec538e775443c5be79dd423fcabahrenscontain such records, you will get potentially confusing error
fa9e4066f08beec538e775443c5be79dd423fcabahrensmessages like "unexpected end of file" because BIND 9 will interpret
fa9e4066f08beec538e775443c5be79dd423fcabahrenseverything up to the next quote character as a literal string.
dns_rdata_fromtext: local.db:119: ran out of space
no-check-names" in resolv.conf. BIND 9 provides no such protection;
and rndc.conf(5) for details.