Overview
BIND 10 will be making its first release on 2010-03-19. This is the "Year 1 Deliverable" of the FiveYearPlan. By agreement with the sponsors for the first year work, this is an authoritative-only server, as well as the BIND 10 framework needed to support future BIND 10 work.
This code is not intended for general use, and is known to be inefficient, difficult to work with, and riddled with bugs. These problems will all be fixed over the next couple of years, as functionality is added and refined, and the software matures. However, the codebase has a good framework for moving forward, and the software is capable of serving as a DNS server with significant functionality.
The code will be released as a tarball. As always, the Subversion repository is open and contains the latest development code if something people want something even more fresh.
Services
The BIND 10 Y1 server includes:
- Authoritative DNS server answering queries, supporting:
- RFCs: 1034, 1035 (basic DNS)
- RFC: 2672 (DNAME)
- RFCs: 3225 (DO bit), 3658 (DS), 4033, 4034, 4035 (DNSKEY, RRSIG, NSEC)
- RFC: 5155 (NSEC3)
- IPv4 and IPv6
- UDP and TCP
- Command-line configuration & control
- SQLite3 as the data source
- Zone file loader (SQLite3-specific)
Libraries
We also have a number of libraries, all used by BIND 10 itself, but not limited to that role:
- DNS library, supporting a basic level of DNS-related concepts:
- domain names
- RR-related parameters: types, classes, TTLs
- RRsets
- RDATA for some major RR types:
A AAAA CNAME DNAME DNSKEY DS MX NS NSEC NSEC3 NSEC3PARAM OPT PTR RRSIG SOA TXT
- Unknown RR types are supported based on RFC3597
- DNS messages (standard query/response)
- APIs to convert these objects to/from text or to/from wire format
- EDNS0
- C++ bindings
- Python bindings
- API for communicating with other BIND 10 components (the "c-channel")
- C++ bindings
- Python bindings
- API for using the BIND 10 configuration system
- C++ bindings
- Python bindings
- API for using the BIND 10 data source (read-only)
- C++ bindings
- REST-ful interface for command & control of BIND 10
Architectural Bits
There are also a number of non-visible architectural features, which hold the system together:
- Inter-component RPC (msgq)
- Dynamic and persistent configuration
- Automatic restart from single-component errors (boss)
- Simple authentication process for server control (cmdctl)
