reproduce DNS VM #200

Open
opened 2025-02-24 15:03:19 +01:00 by kiara · 2 comments
Owner

needed to test #104

implementation notes

if we may put off related front-ends until #350, we should be able to handle DNS using Nix options such as NixOS-DNS, including for the purpose of migration (#100).

needed to test #104 ## implementation notes - [dns servers](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=dns) seem ([compared](https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software#Feature_matrix), should be compatible with client (see #110)): - [`powerdns`](https://github.com/PowerDNS/pdns) aka [`pdns`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/pd/pdns/package.nix) (GPL-2.0, C++, stringly [module](https://search.nixos.org/options?channel=unstable&show=services.pdnsd.serverConfig&query=services.pdnsd)), front-end [powerdns-admin](https://github.com/PowerDNS-Admin/PowerDNS-Admin) - procolix currently has most experience operating this - [`hickory-dns`](https://github.com/hickory-dns) (MIT/Apache, rust, structured [module](https://search.nixos.org/options?channel=unstable&show=services.hickory-dns.settings.zones.*.file&query=services.hickory-dns)) - [`acme-dns`](https://github.com/joohoi/acme-dns/) (MIT, go, semi-stringly [module](https://search.nixos.org/options?channel=unstable&show=services.acme-dns.settings.general.records&query=services.acme-dns)) - [`bind`](https://gitlab.isc.org/isc-projects/bind9) (Apache, C, structured [module](https://search.nixos.org/options?channel=unstable&show=services.bind.zones&query=services.bind), [wiki](https://wiki.nixos.org/wiki/Bind), offers DNSSec) - [`technitium-dns-server`](https://github.com/TechnitiumSoftware/DnsServer) (GPL-3.0, python, simple [module](https://search.nixos.org/options?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=services.technitium-dns-server)) - [`core-dns`](https://github.com/coredns/coredns) (stringly? [module](https://search.nixos.org/options?channel=unstable&show=services.coredns.config&query=services.coredns)) - [`tinydns`](https://github.com/projectdiscovery/tinydns) (stringly [module](https://search.nixos.org/options?channel=unstable&show=services.tinydns.data&query=services.tinydns)) - [eon](https://github.com/ryanGibb/eon) (MIT, OCaml, [intro](https://ryan.freumh.org/eon.html), nix included, nix module thru eilean) - [knot](https://gitlab.nic.cz/knot/knot-dns) (GPL, C, stringly [module](https://search.nixos.org/options?channel=unstable&query=services.knot), modern interfaces, allows zone scoping) - [deSEC](https://github.com/desec-io/desec-stack) (MIT, Python, no nix package/module yet?, allows zone scoping, tho DNSSec/TSIG unconfirmed) (hosted service?) if we may put off related front-ends until #350, we should be able to handle DNS using Nix options such as `NixOS-DNS`, including for the purpose of migration (#100).
kiara added this to the Fediversity project 2025-04-18 10:11:30 +02:00
kiara removed this from the Fediversity project 2025-06-10 19:07:07 +02:00
Owner

You're looking for an authoritative DNS server, of course. I suggest you look at Knot DNS. It's a modern DNS server developed by the .cz NIC. It can be a (hidden) master or slave, it has modern interfaces and has pleasant dynamics. It is not a caching resolver, that'd be the user end of things.

You're looking for an authoritative DNS server, of course. I suggest you look at Knot DNS. It's a modern DNS server developed by the .cz NIC. It can be a (hidden) master or slave, it has modern interfaces and has pleasant dynamics. It is not a caching resolver, that'd be the user end of things.
Author
Owner

@vanrein thanks, that may well be of (future) interest.

now, so far i've maybe somewhat tried to distinguish DNS servers for our internal automation use (immediate concern) vs user-facing applications in that area (to be added to #380 - iirc @koen would be quite interested).

for now over here i've tried to focus on the immediate concern still. i will admit i feel biased against many of the options in this space (considering C itself dated), but immediate pragmatic considerations seem to currently point in favor of BIND DNS as offering a the most usable nix module on top of supporting some of the DNS clients we could use for automation (see #110).

eventually tho both such integrations are something we could build for any of the software in this space, so this is definitely to be revisited as we settle on something amenable as an operator-facing application as well.

@vanrein thanks, that may well be of (future) interest. now, so far i've maybe somewhat tried to distinguish DNS servers for our internal automation use (immediate concern) vs user-facing applications in that area (to be added to #380 - iirc @koen would be quite interested). for now over here i've tried to focus on the immediate concern still. i will admit i feel biased against many of the options in this space (considering C itself dated), but immediate pragmatic considerations seem to currently point in favor of BIND DNS as offering a the most usable nix module on top of supporting some of the DNS clients we could use for automation (see #110). eventually tho both such integrations are something we could build for any of the software in this space, so this is definitely to be revisited as we settle on something amenable as an operator-facing application as well.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
fediversity/fediversity#200
No description provided.