Home / Blogs

A Free DNS Conformance Test Suite

John Levine

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
Follow CircleID on
Related topics: DNS
SHARE THIS POST

If you are pressed for time ...

... this is for you. 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.

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

Share your comments

To post comments, please login or create an account.

Related

Topics

DNS Security

Sponsored byAfilias

Cybersecurity

Sponsored byVerisign

IP Addressing

Sponsored byAvenue4 LLC

New TLDs

Sponsored byAfilias

Domain Names

Sponsored byVerisign

Whois

Sponsored byWhoisXML API