Various long standing issues (at least: #5573 #14159 #20485 #21260 #24532 #32022 #18056) have been asking for a way to delegate DNS resolution of specific domains to very specific DNS servers. This PR goes a major step towards that goal by adding a new concept "DNS Delegate" which allows to configure just that. Basically, this adds a third kind of DNS scope to resolved's logic: besides the per-link and global DNS scopes there are now also "delegate" scopes, which can be created by dropping in a new file /etc/systemd/dns-delegate/*.conf. They carry DNS= and Domains= lines just like the global setting or what the per-link configuration can carry. And they are consulted the same way as link DNS scopes are considered, following the same routing rules. This allows to configure these DNS delegates statically via drop-in files as mentioned, and only adds the most basic functionality. Later on we might want to extend this: 1. Allow dynamic creation of DNS delegates via IPC with lifecycle bound to IPC client (usecase: installing a DNS delegate that routes traffic to some DNS-over-TLS server once basic setup is complete). 2. Allow configuration of protocol details per delegate the same way this is currently allowed per-link. 3. Instead of strictly using DNS as delegation protocol, support an alternative varlink based protocol (without retransmission problems and so on) that systemd-machined and similar can implement. This PR is not complete yet. Lacks docs and tests. Seems to work fine in my local tests however. Fixes: #5573 Fixes: #18056 Fixes: #20485
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a security bug bounty program sponsored by the Sovereign Tech Fund hosted on YesWeHack
Repositories with distribution packages built from git main are available on OBS
