BIND Version 4: UC Berkeley and DEC
The Berkeley Internet Name Domain (BIND) package was originally written in the early 1980s at the University of California at Berkeley as a graduate-student project, under a grant from the US Defense Advanced Research Projects Administration (DARPA). Versions of BIND through 4.8.3 were maintained by the Computer Systems Research Group (CSRG) at UC Berkeley. Douglas Terry, Mark Painter, David Riggle, and Songnian Zhou made up the initial BIND project team.
After that, additional work on the software package was done by Ralph Campbell. Kevin Dunlap, a Digital Equipment Corporation (DEC) employee on loan to the CSRG, worked on BIND for 2 years, from 1985 to 1987. Many other people also contributed to its development during that time, including Doug Kingston, Craig Partridge, David Waitzman of BBN Technologies, Smoot Carl-Mitchell, Mike Muuss, Jim Bloom, and Mike Schwartz. BIND maintenance was subsequently handled by Mike Karels and O. Kure.
BIND versions 4.9 and 4.9.1 were released by Digital Equipment Corporation (now Hewlett-Packard Enterprise). Paul Vixie, then a DEC employee, became BIND’s primary caretaker. Paul was assisted by Phil Almquist, Robert Elz, Alan Barrett, Paul Albitz, Bryan Beecher, Andrew Partan, Andy Cherenson, Tom Limoncelli, Berthold Paffrath, Fuat Baran, Anant Kumar, Art Harkin, Win Treese, Don Lewis, Christophe Wolfhugel, and others.
Paul Vixie became BIND’s principal architect/programmer and sponsored the development of BIND version 4.9.2 through his own firm, Vixie Enterprises.
BIND Versions 4 and 8: The Beginnings of ISC
ISC was founded in 1994 by Rick Adams, Paul Vixie, and Carl Malamud, expressly to provide a home for BIND development and maintenance. BIND versions from 4.9.3 onward were developed and maintained by ISC, with support provided by ISC’s sponsors. As co-architects/programmers, Bob Halley and Paul Vixie released the first production-ready version of BIND version 8 in May 1997.
BIND versions 4 and 8 are officially deprecated. Sources are still archived on ftp.isc.org.
BIND 9: 2000 - Today
There have been more than 43 core developers who have contributed significantly to BIND 9 development and maintenance over its 20+ year lifespan. BIND version 9 was released in September 2000 and was a major rewrite of nearly all aspects of the underlying BIND architecture. After Bob Halley and Michael Graff began work on the initial version of BIND 9, Mark Andrews, David “Tale” Lawrence, Andreas Gustafsson, Brian Wellington, James Brister, and Michael Sawyer joined the team and each made significant contributions to early versions of BIND 9. Of the initial development team, only Mark Andrews still works on BIND. After Mark, Evan Hunt, who joined the core team in 2007, is the current team member with the longest tenure.
BIND 10 Development, 2009 - 2014
In 2009, ISC began an attempt to rewrite BIND from the ground up, with BIND 10. It was intended as a replacement to and improvement on BIND 9, based on an entirely new application framework. BIND 10 was a collaborative project with a group of major funders and technology contributors, primarily from the ccTLD user segment. It is generally believed to have suffered from the “second system” problem, but the truth is probably more complex than that. In 2014, Shane Kerr, the last Project Lead for BIND 10, gave a talk on “The Decline and Fall of BIND 10” at the RIPE 68 community meeting.
During the BIND 10 development years, Mark Andrews and Evan Hunt remained co-maintainers of BIND 9, while the rest of the ISC DNS team focused on “the next system.” In 2014, ISC ended development on BIND 10 and refocused on investing in BIND 9 instead.
In 2016, ISC announced, after community discussion on the bind-users mailing list, that BIND 9.11.0 and later versions would be distributed under the MPL 2.0 license. In July 2017, ISC opened the BIND bug database to external users; in February 2018, ISC migrated the BIND project to a new self-hosted GitLab instance and invited external contributors to join.
The BIND 9 “History” file, included in the distribution, lists the major changes in every release since version 9.2.0.
Refactoring BIND 9
In 2017, ISC embarked on a program of refactoring to update or replace some of the most complex and difficult-to-maintain parts of BIND. We refactored our Response Policy Zones (RPZ) implementation to “disentangle” it from the Red-Black Tree (rbtdb). We refactored several core functions, including
answer_response(), to simplify them; they were both very complex functions.
query_find had a McCabe score of 453 before refactoring, meaning there were 453 different code paths to consider when making changes to that function! BIND 9 was first written to run on a wide range of operating systems at a time when they did not have common networking interfaces, which led to increasing complexity over the years. In 2019-20, ISC replaced the home-grown network interface in BIND with the modern and widely implemented libuv component.
Current BIND 9 Development team
The current BIND development team is led by Ondřej Surý, and includes Mark Andrews, Evan Hunt, Michał Kępień, Matthijs Mekking, Michal Nowak, Artem Boldariev, Petr Špaček, Aram Sargsyan, Tony Finch, and Tom Křı́žek.
The complete “Authors” file from the BIND distribution is extensive but incomplete. BIND’s commit history does not capture the real extent of community contributions from outside the core team, because only a relatively small group of ISC staff had commit privileges; until we adopted the current GitLab development system, the committer, rather than the author, received credit. However, despite the missing commit history, notable long-time external contributors include Tony Finch (before he joined ISC) and Petr Menšík.