A private root content DNS server

Running a private root content DNS server was pioneered by djbdns and experimental when djbdns was originally developed at the turn of the 21st century. In djbwares, it is nowadays one of the conventional DNS services.

The benefits of doing this are well known, and this is a brief summary.

Conceptually, a private root content DNS server introduces pretty much nothing that is not simply the normal operation of tinydns. One obtains the data to publish from a primary source; one filters out extraneous items; one handles any overlaps and conflicts with other data; and one compiles the result with tinydns-data. The traditional mechanism for managing the tinydns database is make and a Makefile and all of these tasks are fairly simple exercises in make rules and widely-available flat-file variable-length text-database processing tools like Miller and AWK.

An example private root Makefile is not provided with djbwares; because it would overlap with the one provided by the nosh toolset which is used as an initial template when creating new tinydns services. That example actually replicates more than just the root, as several subdomains of the root, including Estonia's for example, provide downloadable/replicatable versions of their data. It demonstrates one way in which to resolve conflicts when one is combining data from (the database of) a delegated-from server with data from (the database of) a delegated-to server. It also demonstrates the necessary location tagging, so that the private root data do not affect what is published publicly, and split-horizon DNS service.