Skip to content

Support additional systemd-resolved options / org.freedesktop.resolve1 DBUS endpoints #110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Aug 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

### IMPROVEMENTS

- Support additional DBus calls `ResetServerFeatures`, `ResetStatistics`,
`DNSDefaultRoute`, `SetLinkDNSOverTLS`, `SetLinkLLMNR`,
`SetLinkMulticastDNS`, and `SetLinkNegativeDNSSECTrustAnchors`
([#110](https://github.com/jonathanio/update-systemd-resolved/pull/110])).
- Check that the `org.freedesktop.resolve1` endpoint is available and
short-circuit with an error message if not
([#105](https://github.com/jonathanio/update-systemd-resolved/pull/105)).
Expand Down
32 changes: 30 additions & 2 deletions HACKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,12 @@ and [linking them to Nix packages](https://nixos.org/manual/nixos/stable/index.h
This project's NixOS test sets up three machines:

1. An OpenVPN server,
2. An OpenVPN client, and
3. A DNS resolver running [Dnsmasq](https://thekelleys.org.uk/dnsmasq/doc.html).
2. An OpenVPN client,
3. A DNS resolver running an instance of
[dnsmasq](https://thekelleys.org.uk/dnsmasq/doc.html) bound only to the
loopback address, plus an instance of
[RouteDNS](https://github.com/folbricht/routedns) bound to an address
reachable by the other machines.

The OpenVPN server and client run a [point-to-point configuration with a static
key](https://openvpn.net/community-resources/static-key-mini-howto/). The
Expand All @@ -77,6 +81,12 @@ and then asserts that certain hostnames are resolvable _from the client_ that
would not be resolvable unless the client were configured to use the DNS
settings specified in its OpenVPN configuration file.

The resolver machine uses dnsmasq for actual name resolution, plus DNSSEC
validation. The RouteDNS instance running on the same machine terminates
DNS-over-TLS and forwards queries to dnsmasq. Dnsmasq handles DNSSEC (though
we exempt the VPN domain from DNSSEC validation, as a test of the
`SetLinkDNSSECNegativeTrustAnchors` feature).

#### Extending the NixOS test

If you are implementing a new feature or correcting a bug in
Expand Down Expand Up @@ -113,6 +123,20 @@ $ nix build -L '.#checks.x86_64-linux.update-systemd-resolved'
[^supported-systems]: Run `nix flake show` to view flake outputs namespaced by
all supported systems.

#### Maintaining NixOS test assets

##### Regenerating the DNS-over-TLS keypair

To regenerate the keypair used for testing DNS-over-TLS, [enter the
devshell](#entering-the-nix-development-shell) and [run
`mkdotcert`](#summary-of-available-commands).

##### Regenerating the DNSSEC root anchors

To regenerate the dnsmasq root anchor specification used for testing DNSSEC,
[enter the devshell](#entering-the-nix-development-shell) and [run
`mkanchor`](#summary-of-available-commands).

### Entering the Nix development shell

To enter the Nix development shell, run the following command:
Expand All @@ -127,3 +151,7 @@ shell.
#### Summary of available commands

- `fmt`: format all Nix code in this project using [`alejandra`](https://github.com/kamadorueda/alejandra).
- `mkdotcert`: regenerate the keypair used for encrypting DNS-over-TLS in the
NixOS system test.
- `mkanchor`: regenerate the DNSSEC trust anchors configuration used with
dnsmasq in the NixOS system test.
Loading