migration revision 35b61b8fb1f377ec9b68bbc8e4e43fbd2756a04d
fb84f9014321c5f33c4682de5661b579fcde318fAndreas GustafssonCopyright (C) 2000 Internet Software Consortium.
be6c1c506161e6f45fcff5d0425f78801bc267c1Automatic UpdaterSee COPYRIGHT in the source root or http://isc.org/copyright.html for terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein BIND 8 to BIND 9 Migration Notes
fb84f9014321c5f33c4682de5661b579fcde318fAndreas GustafssonBIND 9 is designed to be mostly upwards compatible with BIND 8, but
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafssonthere is still a number of caveats you should be aware of when
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinupgrading an existing BIND 8 installation to use BIND 9.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein1. Configuration File Compatibility
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews1.1. Unimplemented Options and Changed Defaults
af5073d03288a53b646ec3b807ac25ced64d7879Mark AndrewsBIND 9.0.0 supports most, but not all but not of the named.conf
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafssonoptions of BIND 8. Unimplemented options include those for selective
77dccf2a5d9327d16b4374a135cdb99bdd48620eAutomatic Updater(per-domain) forwarding, sortlists, statistics, and process limits;
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfor a complete list, see doc/misc/options. We plan to implement most
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinof these in in BIND 9.1.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIf your named.conf file uses an unimplemented option, named will log a
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrewswarning message. A message is also logged about each option whose
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindefault has changed unless the option is set explicitly in named.conf.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews1.2. Handling of Configuration File Errors
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIn BIND 9, named refuses to start if it detects an error in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinnamed.conf. Earlier versions would start despite errors, causing the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinserver to run with a partial configuration. Errors detected during
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinsubsequent reloads do not cause the server to exit.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinThe set of logging categories in BIND 9 is different from that
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinin BIND 8. If you have customized your logging on a per-category
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinbasis, you need to modify your logging statement to use the
be6c1c506161e6f45fcff5d0425f78801bc267c1Automatic Updaternew categories.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinAnother difference is that the "logging" statement only takes effect
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinafter the entire named.conf file has been read. This means that when
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinthe server starts up, any messages about errors in the configuration
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfile are always logged to the default destination (syslog) when the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinserver first starts up, regardless of the contents of the "logging"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinstatement. In BIND 8, the new logging configuration took effect
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinimmediately after the "logging" statement was read.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein1.3. Case sensitivity
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIn BIND 9, ACL names are case sensitive. In BIND 8 they were case
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein2. Zone File Compatibility
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein2.1. Strict RFC1035 Interpretation of TTLs in Zone Files
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBIND 8 allowed you to omit all TTLs from a zone file, and used the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinvalue of the SOA MINTTL field as a default for missing TTL values.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBIND 9 enforces strict compliance with the RFC1035 and RFC2308 TTL
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinrules. The default TTL is the value specified with the $TTL
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeindirective, or the previous explicit TTL if there is no $TTL directive.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinIf there is no $TTL directive and the first RR in the file does not
b49958b502ee45022010a0b1bed3968f598895a4Automatic Updaterhave an explicit TTL field, the error message "no TTL specified" is
b49958b502ee45022010a0b1bed3968f598895a4Automatic Updaterlogged and loading the zone file fails.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTo avoid problems, use a $TTL directive in each zone file.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein2.2. Periods in SOA Serial Numbers Deprecated
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSome versions of BIND allow SOA serial numbers with an embedded
b3cbb2f1ad021349e89807f3492df6e4e679cd56Mark Andrewsperiod, like "3.002", and convert them into integers in a rather
b3cbb2f1ad021349e89807f3492df6e4e679cd56Mark Andrewsunintuitive way. This feature is not supported by BIND 9; serial
b3cbb2f1ad021349e89807f3492df6e4e679cd56Mark Andrewsnumbers must be integers.
b3cbb2f1ad021349e89807f3492df6e4e679cd56Mark Andrews2.3. Handling of Unbalanced Quotes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTXT records with unbalanced quotes, like 'host TXT "foo', were not
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintreated as errors in some versions of BIND. If your zone files
be6c1c506161e6f45fcff5d0425f78801bc267c1Automatic Updatercontain such records, you will get potentially confusing error
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinmessages like "unexpected end of file" because BIND 9 will interpret
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeineverything up to the next quote character as a literal string.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein3. Interoperability Impact of New Protocol Features
61e1dc26d62c2a0059e3ca7efe2ad0f4a5b8df92Mark AndrewsBIND 9 uses EDNS0 (RFC2671) to advertise its receive buffer size. It
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinalso sets the AD bit in queries to indicate that it wishes to receive
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinDNSSEC responses (this usage of the AD bit is not yet standard, but
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinhopefully it will be soon).
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMost older servers that do not support EDNS0 and/or DNSSEC, including
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall known versions of BIND, will send a FORMERR or NOTIMP response to
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinthese queries. When this happens, BIND 9 will automatically retry the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinquery without EDNS0 and AD.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinUnfortunately, there exists at least one non-BIND name server
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinimplementation that silently ignores these queries instead of sending
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinan error response. Resolving names in zones where all or most
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinauthoritative servers use this server will be very slow or fail
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincompletely. We have contacted the manufacturer of the name server in
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincase and are trying to resolve the issue with them.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$Id: migration,v 1.7 2000/08/29 17:57:29 gson Exp $