Job dns-primary-git

README

Skip to build

Authoritative DNS server

This is a MirageOS unikernel which is an authoritative DNS server on port 53 (TCP and UDP). The data to be served is pulled from a git remote repository (see the ssh branch for git-via-ssh). The server supports dynamic updates (NSUPDATE), zone transfer (AXFR and IXFR), all cryptographically authenticated and integrity protected with TSIG (HMAC with a pre-shared secret).

The git remote is expected to contain a flat file hierarchy where each zone to be served is a separate file. HMAC secrets are stored as DNSKEY entries in _keys zones (i.e. example.com._keys or _keys).

This can be used with dns-secondary, and let's encrypt for automated provisioning of let's encrypt certificates.

Installation from source

To install this unikernel from source, you need to have opam (>= 2.0.0) and ocaml (>= 4.07.0) installed. Also, mirage is required (>= 3.7.7). Please follow the installation instructions.

The following steps will clone this git repository and compile the unikernel:

$ git clone https://github.com/roburio/dns-primary-git.git
$ mirage configure -t <your-favourite-target>
$ make depend
$ make

Installing as binary

There are not yet any binaries available, but work is underway to provide reproducible binaries.

Questions?

Please open an issue if you have questions, feature requests, or comments.

Build 2021-10-13 22:52:08 -00:00

Back to readme

Build took 17min47s.

Execution result: exited 0.

Reproduced by builds

2021-10-15 22:55:57 -00:00, 2021-10-14 22:31:27 -00:00,

Build info

Comparisons with other builds

With latest build
With build 2021-10-12 22:29:09 -00:00 (output is identical binary)
With build 2021-10-08 22:40:12 -00:00 (output is identical binary)

Build artifacts

bin/primary_git.hvt
SHA256:96c656678c5aa37cb55aaf20bbc489b1d79f0b4ad27f1e1f01d39c081d385dca (11.3MB)
build-environment
SHA256:2979406e1278a8aeca516f6e5a3a19bbfa2a67c9f805b790f247c5a32d3d12cb (263B)
opam-switch
SHA256:ac69d77bf9a507f3795d413f62239dac3a5dd6dc836a87a5fec3c1e937e3876b (282kB)
primary_git.hvt.debug
SHA256:d35d94ca2935ed8620229710da40dd8e282d9160707764a5de410032c40ff9c5 (16.5MB)
system-packages
SHA256:988bcce87c0157b9e31c7dac750f7814f8427a487268ce92dafc549c0b979b28 (184B)