3743N/ACopyright (C) 2000 Internet Software Consortium.
3743N/A BIND 8 to BIND 9 Migration Notes
3743N/ABIND 9 is designed to be mostly upwards compatible with BIND 8, but
3743N/Athere is still a number of caveats you should be aware of when
3743N/Aupgrading an existing BIND 8 installation to use BIND 9.
3743N/A1. Configuration File Compatibility
3743N/A1.1. Unimplemented Options and Changed Defaults
3743N/Aoptions of BIND 8. Unimplemented options include those for selective
3743N/A(per-domain) forwarding, sortlists, statistics, and process limits;
3743N/Awarning message. A message is also logged about each option whose
3743N/A1.2. Handling of Configuration File Errors
3743N/AIn BIND 9, named refuses to start if it detects an error in
3743N/Aserver to run with a partial configuration. Errors detected during
3743N/Asubsequent reloads do not cause the server to exit.
3743N/AThe set of logging categories in BIND 9 is different from that
3743N/Ain BIND 8. If you have customized your logging on a per-category
3743N/Abasis, you need to modify your logging statement to use the
3743N/AAnother difference is that the "logging" statement only takes effect
3743N/Athe server starts up, any messages about errors in the configuration
3743N/Afile are always logged to the default destination (syslog) when the
3743N/Aserver first starts up, regardless of the contents of the "logging"
3743N/Astatement. In BIND 8, the new logging configuration took effect
3743N/Aimmediately after the "logging" statement was read.
3743N/AIn BIND 9, ACL names are case sensitive. In BIND 8 they were case
3743N/A2.1. Strict RFC1035 Interpretation of TTLs in Zone Files
3743N/ABIND 8 allowed you to omit all TTLs from a zone file, and used the
3743N/Avalue of the SOA MINTTL field as a default for missing TTL values.
3743N/ABIND 9 enforces strict compliance with the RFC1035 and RFC2308 TTL
3743N/Arules. The default TTL is the value specified with the $TTL
3743N/Adirective, or the previous explicit TTL if there is no $TTL directive.
3743N/AIf there is no $TTL directive and the first RR in the file does not
3743N/Ahave an explicit TTL field, the error message "no TTL specified" is
3743N/Alogged and loading the zone file fails.
3743N/ATo avoid problems, use a $TTL directive in each zone file.
3743N/A2.2. Periods in SOA Serial Numbers Deprecated
3743N/ASome versions of BIND allow SOA serial numbers with an embedded
3743N/Aperiod, like "3.002", and convert them into integers in a rather
3743N/Aunintuitive way. This feature is not supported by BIND 9; serial
2.3. Handling of Unbalanced Quotes
TXT records with unbalanced quotes, like 'host TXT "foo', were not
treated as errors in some versions of BIND. If your zone files
contain such records, you will get potentially confusing error
messages like "unexpected end of file" because BIND 9 will interpret
everything up to the next quote character as a literal string.
2.4. Handling of Line Breaks
Some versions of BIND accept RRs containing line breaks that are not
properly quoted with parentheses, like the following SOA:
( 1 3600 1800 1814400 3600 )
This is not legal master file syntax and will be treated as an error
by BIND 9. The fix is to move the opening parenthesis to the first
3. Interoperability Impact of New Protocol Features
BIND 9 uses EDNS0 (RFC2671) to advertise its receive buffer size. It
also sets the AD bit in queries to indicate that it wishes to receive
DNSSEC responses (this usage of the AD bit is not yet standard, but
hopefully it will be soon).
Most older servers that do not support EDNS0
and/or DNSSEC, including
all known versions of BIND, will send a FORMERR or NOTIMP response to
these queries. When this happens, BIND 9 will automatically retry the
query without EDNS0 and AD.
Unfortunately, there exists at least one non-BIND name server
implementation that silently ignores these queries instead of sending
an error response. Resolving names in zones where all or most
authoritative servers use this server will be very slow or fail
completely. We have contacted the manufacturer of the name server in
case and are trying to resolve the issue with them.
$Id: migration,v 1.8 2000/08/31 01:38:20 gson Exp $