Description
A bit of background:
ResolveConfSplitDNSProvider interacts with the DNS resolver using resolvconf
, while ResolvedSplitDNSProvider uses resolvectl
. vpn-slice decides which of these to use by inspecting /etc/resolv.conf
.
If I understand things correclty, it looks for the string "/run/systemd/resolve/" in /etc/resolv.conf, which is not present on Fedora 37. Instead, it might be better to check whether resolvectl exists on the system?
Using resolvctl allows me to make the split DNS a bit more splitty with the following change (the last line is the only change).
self._resolvectl(*([ 'domain', tundev ] + [ format(x) for x in domains ]))
self._resolvectl(*([ 'dns', tundev ] + [ format(x) for x in nameservers ]))
self._resolvectl(*([ 'default-route', tundev, 'false' ]))
This disables the default-route flag from the tunneled interface, which means it won't be used to DNS queries UNLESS it's in the domains
list.
Without this change, every DNS query is sent to the tunneled resolver, even if another resolver has already answered the query.
I'd submit this as a merge request, but I don't understand the code well enough to make sure that this won't break anyone else's setup. Feel free to reach out for more info.