BIND 10 is the next generation version of BIND, ISC’s DNS server. We have a long list of ways that we wanted to improve on BIND 9, including scalability, reliability, modularity, extensibility, and usability. The project to build BIND 10 has been active for the past 2 years, and now has a usable (though not yet production ready) server.
In addition to BIND, ISC has a number of open source software products that it maintains. One of the more popular of these is ISC DHCP.
ISC DHCP has many similarities with BIND:
- Like DNS, DHCP is one of the core protocols of the Internet.
- Like DNS, DHCP is used every day by almost every Internet user.
- Like BIND, ISC DHCP is a portable, open source implementation built around standards that is used by administrators, operating distributions, and integrated into solutions by vendors every day.
- Like BIND, ISC DHCP is a decade old without major change in the software code base.
ISC would like to give DHCP a re-write. Many of our reasons are similar to why we wanted to re-write BIND, but others are not. Some motivations:
- The computing world has changed since DHCP was designed, where soon even mobile phones will having multiple cores, gigabytes of memory, and sophisticated operating systems.
- The networking world has changed. When ISC DHCP was first implemented DHCP was a new protocol designed to replace BOOTP. Now DHCP is mature, and used by ISPs to manage millions of computers. IPv6 will also change the way networks are numbered and managed.
- We want software that can be customized and extended by both system administrators and developers.
Why BIND 10 DHCP?
Rather than build two separate products that share many features, we think it makes sense to provide enough flexibility in BIND 10 to allow support for different protocols.
As far as general advantages for using BIND 10 for DHCP, this would mean that the DHCP server would be able to benefit from all of the “infrastructure” surrounding the BIND 10 DNS side. These include:
- Modularity, allowing administrators to choose the parts of the system to run (for example, not running any failover components on single-server setups).
- Resilience to failures, so that if one component fails it is restarted, usually without affecting other parts of the system at all.
- Run-time configuration and control, allowing system settings to be changed without restarting the system, taking effect instantly.
In addition, there may be some advantages to combining the DHCP and DNS protocols in a single server. For example, the configuration of a zone to serve DNS information about hosts configured via DHCP will be both easy, and will not have to sychronize between separate programs.
While we had hoped to combine the DHCP work with the DNS work from the beginning of the project, ISC is a relatively small, not-for-profit company and could not afford to fund the effort ourselves. On the DNS side, we were able to find generous sponsors – many of whom are also not-for-profit – who feel that DNS is important for their own business as well as the larger DNS community.
DHCP has always had a more difficult time getting money than DNS. This may be because while DNS has a natural hierarchy, DHCP is run by each organization in isolation. It may be because DNS is highly visible, with domain names showing up in both web page names and e-mail addresses, while DHCP runs invisibly.
We are happy that we have finally found a sponsor for the DHCP work. Comcast has agreed to fund BIND 10 DHCP work, which was begun in April 2011.
Our first deliverable will be a skeleton server, which will not be usable in a real sense, but will take DHCP packets through the necessary bits of the program. This will include:
- A DHCP packet library, in the same spirit as the DNS message library in BIND 10. This handles the low-level work of assembling and parsing packets.
- DHCPv4 state machine.
- DHCPv6 state machine.
- Hook definitions, describing where in the process flow custom actions can be defined and the parameters of these. (Only relay for this milestone.)
- Hook definitions, but for the server logic.
- Hook definitions for the pool interaction and lease storage.
- DHCP benchmark tools.
- Option definition framework design.
Our delivery date for this is the end of 2011. You can follow the development of this work by subscribing to the BIND 10 developer’s list.
The BIND 10 DHCP work really needs more support to make it viable. If you or your organization is interested, please check out our page on becoming a BIND 10 sponsor.
Learn More Live
We gave a webinar about DHCP on Thursday, 2011-05-19, about some of the ISC DHCP work, both “legacy” ISC DHCP 4.x as well as the BIND 10 DHCP work. Please see our webinar page for slides and recordings.