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.)
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.
Known corrupt copies of the root zone:
Commit: 0d0f47e3c052cbc09483318c8b1a337c861dbd7d
Date: 2014-09-05 12:33:05 +0100
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.
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.
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.
IANA's root zone management page has more information about how the DNS root zone is changed.
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.
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.
Please send comments / suggestions / contributions to me by email.
Tony Finch dot@dotat.at fanf2@cam.ac.uk
University of Cambridge