Alpha2 release of BIND 10 Welcome to the second alpha release of BIND 10. The highlights since the previous alpha release include background DNS zone loading and support for time unit mnemonics for resource record TTLs. This new version of BIND 10 also introduces a development version of the DHCPv6 server able to store lease information in a MySQL database. Note that this release includes a security bug fix. The previous non-production release of the authoritative DNS server could crash due to an incoming query if it served a zone containing a DNAME RR from the in-memory data source. A new unit test implementation using the in-memory data source was written to verify this. BIND 10 provides a C++ library for DNS (with python wrappers) and several cooperating daemons for providing authoritative DNS service (with in-memory and SQLite3 backends and DNSSEC support), DNS forwarding, and experimental recursive name service. It also provides DHCPv4 and DHCPv6 servers and a C++ library for DHCP. Supplementary components are included for statistics collection and reporting and remote configuration and control. We are looking for testers to provide feedback on using this alpha2 release. For more information about BIND 10, the release schedule, and the community testing plans, please see: http://bind10.isc.org/wiki/ProductionRelease Documentation is included and also available via the BIND 10 website at http://bind10.isc.org/ The bind10-devel-20121115 source may be downloaded from: ftp://ftp.isc.org/isc/bind10/devel-20121115/bind10-devel-20121115.tar.gz A PGP signature of the distribution is at ftp://ftp.isc.org/isc/bind10/devel-20121115/bind10-devel-20121115.tar.gz.sha512.asc The signature was generated with the ISC public key, which is available at https://www.isc.org/about/openpgp Users and developers are encouraged to participate on the BIND 10 mailing lists. Please provide your feedback: https://lists.isc.org/mailman/listinfo/bind10-users https://lists.isc.org/mailman/listinfo/bind10-dev Bugs may be reported as tickets via the developers website (after logging into Trac): http://bind10.isc.org/ A summary of the significant changes since the previous release include (from the ChangeLog): 507. [doc] jelte Added a chapter about the use of the bindctl command tool to to the BIND 10 guide. (Trac #2305, git c4b0294b5bf4a9d32fb18ab62ca572f492788d72) 506. [security] jinmei Fixed a use-after-free case in handling DNAME record with the in-memory data source. This could lead to a crash of b10-auth if it serves a zone containing a DNAME RR from the in-memory data source. This bug was introduced at bind10-devel-20120927. (Trac #2471, git 2b1793ac78f972ddb1ae2fd092a7f539902223ff) 505. [bug] jelte Fixed a bug in b10-xfrin where a wrong call was made during the final check of a TSIG-signed transfer, incorrectly rejecting the transfer. (Trac #2464, git eac81c0cbebee72f6478bdb5cda915f5470d08e1) 504. [bug]* naokikambe Fixed an XML format viewed from b10-stats-httpd. Regarding per-zone counters as zones of Xfrout, a part of the item values wasn't an exact XML format. A zone name can be specified in URI as /bind10/statistics/xml/Xfrout/zones/example.org/xfrreqdone. XSD and XSL formats are also changed to constant ones due to these changes. (Trac #2298, git 512d2d46f3cb431bcdbf8d90af27bff8874ba075) 503. [func] Stephen Add initial version of a MySQL backend for the DHCP code. This implements the basic IPv6 lease access functions - add lease, delete lease and update lease. The backend is enabled by specifying --with-dhcp-mysql on the "configure" command line: without this switch, the MySQL code is not compiled, so leaving BIND 10 able to be built on systems without MySQL installed. (Trac #2342, git c7defffb89bd0f3fdd7ad2437c78950bcb86ad37) 502. [func] vorner TTLs can be specified with units as well as number of seconds now. This allows specifications like "1D3H". (Trac #2384, git 44c321c37e17347f33ced9d0868af0c891ff422b) 501. [func] tomek Added DHCPv6 allocation engine, now used in the processing of DHCPv6 messages. (Trac #2414, git b3526430f02aa3dc3273612524d23137b8f1fe87) 500. [bug] jinmei Corrected the autoconf example in the examples directory so it can use the configured path to Boost to check availability of the BIND 10 library. Previously the sample configure script could fail if Boost is installed in an uncommon place. Also, it now provides a helper m4 function and example usage for embedding the library path to executable (using linker options like -Wl,-R) to help minimize post-build hassles. (Trac #2356, git 36514ddc884c02a063e166d44319467ce6fb1d8f) 499. [func] team The b10-auth 'loadzone' command now uses the internal thread introduced in 495 to (re)load a zone in the background, so that query processing isn't blocked while loading a zone. (Trac #2213, git 686594e391c645279cc4a95e0e0020d1c01fba7e) 498. [func] marcin Implemented DHCPv6 option values configuration using configuration manager. In order to set values for data fields carried by the particular option, user specifies the string of hexadecimal digits that is in turn converted to binary data and stored into option buffer. More user friendly way of option content specification is planned. (Trac #2318, git e75c686cd9c14f4d6c2a242a0a0853314704fee9) 497. [bug] jinmei Fixed several issues in isc-sysinfo: - make sure it doesn't report a negative value for free memory size (this happened on FreeBSD, but can possibly occur on other BSD variants) - correctly identifies the SMP support in kernel on FreeBSD - print more human readable uptime as well as the time in seconds (Trac #2297, git 59a449f506948e2371ffa87dcd19059388bd1657) 496. [func] tomek DHCPv6 Allocation Engine implemented. It allows address allocation from the configured subnets/pools. It currently features a single allocator: IterativeAllocator, which assigns addresses iteratively. Other allocators (hashed, random) are planned. (Trac #2324, git 8aa188a10298e3a55b725db36502a99d2a8d638a) 495. [func] team b10-auth now handles reconfiguration of data sources in background using a separate thread. This means even if the new configuration includes a large amount of data to be loaded into memory (very large zones and/or a very large number of zones), the reconfiguration doesn't block query handling. (Multiple Trac tickets up to #2211) 494. [bug] jinmei Fixed a problem that shutting down BIND 10 kept some of the processes alive. It was two-fold: when the main bind10 process started as a root, started b10-sockcreator with the privilege, and then dropped the privilege, the bind10 process cannot kill the sockcreator via signal any more (when it has to), but it kept sending the signal and didn't stop. Also, when running on Python 3.1 (or older), the sockcreator had some additional file descriptor open, which prevented it from exiting even after the bind10 process terminated. Now the bind10 process simply gives up killing a subprocess if it fails due to lack of permission, and it makes sure the socket creator is spawned without any unnecessary FDs open. (Trac #1858, git 405d85c8a0042ba807a3a123611ff383c4081ee1) 493. [build] jinmei Fixed build failure with newer versions of clang++. These versions are stricter regarding "unused variable" and "unused (driver) arguments" warnings, and cause fatal build error with -Werror. The affected versions of clang++ include Apple's customized version 4.1 included in Xcode 4.5.1. So this fix will solve build errors for Mac OS X that uses newer versions of Xcode. (Trac #2340, git 55be177fc4f7537143ab6ef5a728bd44bdf9d783, 3e2a372012e633d017a97029d13894e743199741 and commits before it with [2340] in the commit log) 492. [func] tomek libdhcpsrv: The DHCP Configuration Manager is now able to store information about IPv4 subnets and pools. It is still not possible to configure that information. Such capability will be implemented in a near future. (Trac #2237, git a78e560343b41f0f692c7903c938b2b2b24bf56b) 491. [func] tomek b10-dhcp6: Configuration for DHCPv6 has been implemented. Currently it is possible to configure IPv6 subnets and pools within those subnets, global and per subnet values of renew, rebind, preferred and valid lifetimes. Configured parameters are accepted, but are not used yet by the allocation engine yet. (Trac #2269, git 028bed9014b15facf1a29d3d4a822c9d14fc6411) 490. [func] tomek libdhcpsrv: An abstract API for lease database has been implemented. It offers a common interface to all concrete database backends. (Trac #2140, git df196f7609757253c4f2f918cd91012bb3af1163) 489. [func] muks The isc::dns::RRsetList class has been removed. It was now unused inside the BIND 10 codebase, and the interface was considered prone to misuse. (Trac #2266, git 532ac3d0054f6a11b91ee369964f3a84dabc6040) 488. [build] jinmei On configure, changed the search order for Python executable. It first tries more specific file names such as "python3.2" before more generic "python3". This will prevent configure failure on Mac OS X that installs Python3 via recent versions of Homebrew. (Trac #2339, git 88db890d8d1c64de49be87f03c24a2021bcf63da) 487. [bug] jinmei The bind10 process now terminates a component (subprocess) by the "config remove Boss/components" bindctl command even if the process crashes immediately before the command is sent to bind10. Previously this led to an inconsistent state between the configuration and an internal component list of bind10, and bind10 kept trying to restart the component. A known specific case of this problem is that b10-ddns could keep failing (due to lack of dependency modules) and the administrator couldn't stop the restart via bindctl. (Trac #2244, git 7565788d06f216ab254008ffdfae16678bcd00e5) 486. [bug]* jinmei All public header files for libb10-dns++ are now installed. Template configure.ac and utility AC macros for external projects using the library are provided under the "examples" directory. The src/bin/host was moved as part of the examples (and not installed with other BIND 10 programs any more). (Trac #1870, git 4973e638d354d8b56dcadf71123ef23c15662021) 485. [bug] jelte Several bugs have been fixed in bindctl; tab-completion now works within configuration lists, the problem where sometimes the completion added a part twice has been solved, and it no longer suggests the confusing value 'argument' as a completion-hint for configuration items. Additionally, bindctl no longer crashes upon input like 'config remove Boss'. (Trac #2254, git 9047de5e8f973e12e536f7180738e6b515439448) 484. [func] tomek A new library (libb10-dhcpsrv) has been created. At present, it only holds the code for the DHCP Configuration Manager. Currently this object only supports basic configuration storage for the DHCPv6 server, but that capability will be expanded. (Trac #2238, git 6f29861b92742da34be9ae76968e82222b5bfd7d) Thanks again to those who contributed bug reports, code, and reviews. Jeremy C. Reed ISC Release Engineer