Nyota - PVVs network host configuration

Nyota, named after Nyota Uhura, is intended to serve as the source of truth for PVVs DNS and DHCP configurations. It is based on nix, and contains both the generating code and actual data.

Normal PVV "hosts" (servers or similar) can be defined in ./hosts.nix, and custom DNS configurations can be placed in each zone configuration file in ./zones, such as ./zones/pvv.ntnu.no.nix.

Building DNS zone files

Provided you already have nix, you should be able to run nix build .#zoneConfig, and the resulting config is placed in ./result/zones.

Building DHCP configuration

(not implemented)

Examples;

A host configuration like

  drolsum = {
    ipv4 = pvvv4 217;
    ipv6 = pvvv6 217;
    aliases = [ "login2" ];
  };

  roundrobin = {
    ipv4 = [ (pvvv4 101) (pvvv4 102) ];
    ipv6 = [ (pvvv6 101) (pvvv6 102) ];
  };

... will generate a bind configuration like

drolsum.pvv.ntnu.no. IN A 129.241.210.217
drolsum.pvv.ntnu.no. IN AAAA 2001:700:300:1900::217
login2.pvv.ntnu.no. IN CNAME drolsum


roundrobin.pvv.ntnu.no. IN A 129.241.210.101
roundrobin.pvv.ntnu.no. IN A 129.241.210.102
roundrobin.pvv.ntnu.no. IN AAAA 2001:700:300:1900::101
roundrobin.pvv.ntnu.no. IN AAAA 2001:700:300:1900::102
Description
PVVs (future) host network configuration
Readme 116 KiB
Languages
Nix 100%