Systemd Resolved
A component of the systemd project. The corresponding unit file is systemd-resolved.service.
Usage
systemd-resolved(8) is a daemon that supports DNS, mDNS, LLMNR, etc., lookups.
Name Service Switch
The project also includes an NSS plugin that re-implements most of the name resolution stack (including reading the hosts file).
The recommended configuration of /etc/nsswitch.conf:
hosts: mymachines resolve [!UNAVAIL=return] myhostname files dns
It is incompatible with Linux name resolution in one important way: the last successful DNS server is remembered and prioritized for any subsequent DNS lookups. This means that split horizon DNS configurations are not possible with systemd-resolved(8).
Resolver
The service also includes a stub resolver on 127.0.0.53:53 with the full feature set of the local resolver, and a stub resolver on 127.0.0.54:53 with a limited resolver in proxy mode. An example of that limited resolver is that DNSSEC will not be validated.
The service also creates a dummy resolver file, which just points to the aforementioned stub resolver. The recommendation is to link the system resolver file to this dummy file.
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
On the other hand, to disable the stub listener, edit /etc/systemd/resolved.conf as follows:
DNSStubListener=no
ResolvConf
systemd-resolvconf(8) is a compatibility layer between systemd-resolved(8) and the resolvconf API. However:
in many cases, it is not a compatible compatibility layer
it is dependent on systemd-resolved(8)
As such, services should be configured to interface with systemd-resolved(8) directly rather than systemd-resolvconf(8).