Home / Blogs

A Free DNS Conformance Test Suite

The Domain Name System is now over 25 years old. Since the publication of RFCs 1034 and 1035 in 1987, there have been over 100 RFC documents published that extend and clarify the original DNS specs. Although the basic design of the DNS hasn’t changed, its definition is now extremely complex, enough so that it’s a challenging task to tell whether a DNS package correctly implements the specs.

Over the past year, Paul Hoffman and I have been working on a conformance test suite for the DNS. We built sofware tools that let us take all of those RFCs and identify the parts of each DNS that define requirements for DNS software. For each requirement, we created tests for anything that was reasonably testable, as opposed to an operational policy.

Different enterprises and vendors will have different views of what should or should not be tested, so the conformance test system allows easy selection of subsets of requirements to be tested. The entire system is made available under Creative Commons licenses so that anyone can use it and adapt it for local requirements. In addition, the overall test system is able to serve as the basis for creating conformance tests for other protocols.

The heart of the project is a database of all the RFCs and other documents that specify the current DNS. That database has an interactive web front-end and associated tools for marking up the requirements in the RFCs, and specifying tests for each requirement. The database can be turned into an HTML-formatted test plan that can be used to test conformance to the DNS specifications.

We assumed that people might disagree on some of the requirements in the RFCs, and might have different ideas about what tests to run for some requirements. Anyone can modify their own copy of the database and create their own test plans from their database. Because the test plans are valid structured HTML, comparing test plans is easy with any file comparison tool, particularly ones that are optimized for comparing HTML files.

The entire package is available for download on our web site. It’s written in python and mysql. We’ve run it on Ubuntu and FreeBSD, and it should be straightforward to get working on any system with reasonably recent python, mysql, and Apache software.

We thank the sponsors that made this project possible: Akamai, Dyn, Google, ICANN, Microsoft, and Verisign.

By John Levine, Author, Consultant & Speaker

Filed Under

CircleID Newsletter The Weekly Wrap

More and more professionals are choosing to publish critical posts on CircleID from all corners of the Internet industry. If you find it hard to keep up daily, consider subscribing to our weekly digest. We will provide you a convenient summary report once a week sent directly to your inbox. It's a quick and easy read.

I make a point of reading CircleID. There is no getting around the utility of knowing what thoughtful people are thinking and saying about our industry.

Co-designer of the TCP/IP Protocols & the Architecture of the Internet


Comment Title:

  Notify me of follow-up comments

We encourage you to post comments and engage in discussions that advance this post through relevant opinion, anecdotes, links and data. If you see a comment that you believe is irrelevant or inappropriate, you can report it using the link at the end of each comment. Views expressed in the comments do not represent those of CircleID. For more information on our comment policy, see Codes of Conduct.



Domain Names

Sponsored byVerisign

Threat Intelligence

Sponsored byWhoisXML API


Sponsored byVerisign

IPv4 Markets

Sponsored byIPXO

Domain Management

Sponsored byMarkMonitor