Skip to content
/ saveroot Public

Archive of the DNS root zone

Notifications You must be signed in to change notification settings

fanf2/saveroot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archive of the DNS root zone

This repository is generated by a cron job which frequently obtains a zone transfer of the DNS root zone, commits any changes, and pushes to GitHub.

The archive dates back to 2014-03-05. There are known to be gaps caused by failures in the cron job. (This archive is a low-effort side project.)

repository size

Warning: this repository is multiple gigabytes in size.

This repository is so big because most of the changes to the root zone are updated RRSIG records, containing cryptographic data that does not compress well.

corruption

Known corrupt copies of the root zone:

Commit: 0d0f47e3c052cbc09483318c8b1a337c861dbd7d
Date:   2014-09-05 12:33:05 +0100

old journal

The journal subdirectory contains an archived BIND journal file split into pieces. To re-create the file, run the command:

    cat journal/* | zcat -d > root.jnl

You can use named-journalprint root.jnl to examine its contents. This file contains incremental updates to the root zone covering serial numbers between 2005072701 and 2014030500. There is a small unlucky gap between the end of the journal and the start of the main archive.

Many thanks to David Malone for providing this journal.

summarize git log

The summarize subdirectory contains some helper scripts for selecting which parts of the root zone are shown in git log --patch. Most of the changes to the root zone are to refresh RRSIG records, which is not very interesting.

The summarize/gitconfig file can be appended to your .git/config file to get it set up. This must be done manually because the textconv option runs scripts and git won't let a repository auto-run scripts.

The summarize/gitattributes file is an example that can be copied to .gitattributes and edited to choose which records you want to see in diffs. The default in the example gitattributes file ignores RRSIG records.

related work

This saveroot repository is a companion to @diffroot on Twitter. The diffroot bot uses nsdiff to tweet summaries of how the root zone changes.

The scripts for updating this saveroot repository live alongside diffroot, which is currently not fit for public consumption because the repository contains secrets.

about the root zone

IANA's root zone management page has more information about how the DNS root zone is changed.

license

The scripts in the summarize directory are released under the 0BSD license.

I do not know the exact copyright status of the root zone itself.

future work

It would be cool to:

  • Reconstruct old root zones from the journal. This covers the period when the zone was signed in 2010.

  • Write analysis scripts to extract a log of changes per TLD.

  • Publish a less enormous version of this repository that excludes RRSIG records.

feedback

Please send comments / suggestions / contributions to me by email.

Tony Finch dot@dotat.at fanf2@cam.ac.uk
University of Cambridge

About

Archive of the DNS root zone

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages