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
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:
Documentation is included and also available via the BIND 10 website
The bind10-devel-20121115 source may be downloaded from:
A PGP signature of the distribution is at
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:
Bugs may be reported as tickets via the developers website (after
logging into Trac):
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
(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
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
(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
(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
- 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
(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
(Trac #2340, git 55be177fc4f7537143ab6ef5a728bd44bdf9d783,
3e2a372012e633d017a97029d13894e743199741 and commits before it
with  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
(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