summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonan Pigott <ronan@rjp.ie>2024-08-21 16:49:59 +0200
committerRonan Pigott <ronan@rjp.ie>2024-08-21 19:27:07 +0200
commitd229e282d6b76a3c5980935dc26f799be7fb6784 (patch)
tree4b1e53c1438cd59926ed7d738cf534d74d446995
parentresolved: use the fallback servers when no default dns is configured (diff)
downloadsystemd-d229e282d6b76a3c5980935dc26f799be7fb6784.tar.xz
systemd-d229e282d6b76a3c5980935dc26f799be7fb6784.zip
resolved: demote the fallback dns servers
This softens the behavior originally introduced in eded61e410df to apply only to the fallback dns servers. The intent is that the global FallbackDNS (instead of DNS) can now be used in conjunction with the per-link dns, providing a fallback behavior without introducing a scope overlap. References: eded61e410df (resolved: demote the global unicast scope, 2024-08-19)
-rw-r--r--man/systemd-resolved.service.xml5
-rw-r--r--src/resolve/resolved-dns-scope.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/man/systemd-resolved.service.xml b/man/systemd-resolved.service.xml
index 13c0da987f..f7be0793cf 100644
--- a/man/systemd-resolved.service.xml
+++ b/man/systemd-resolved.service.xml
@@ -219,8 +219,9 @@
is sent to all DNS servers that are configured on links with the <varname>DefaultRoute=</varname>
option set, as well as the globally configured DNS server.</para></listitem>
- <listitem><para>If there is no link configured as <varname>DefaultRoute=</varname> and no global DNS
- server configured, one of the compiled-in fallback DNS servers is used.</para></listitem>
+ <listitem><para>If there are no DNS servers configured on any link also configured as
+ <varname>DefaultRoute=</varname> and no global DNS server configured, one of the compiled-in fallback
+ DNS servers is used.</para></listitem>
<listitem><para>Otherwise the unicast DNS query fails, as no suitable DNS servers can be determined.
</para></listitem>
diff --git a/src/resolve/resolved-dns-scope.c b/src/resolve/resolved-dns-scope.c
index 21b9844e04..4d4e952dac 100644
--- a/src/resolve/resolved-dns-scope.c
+++ b/src/resolve/resolved-dns-scope.c
@@ -778,6 +778,10 @@ DnsScopeMatch dns_scope_good_domain(
if (!dns_scope_is_default_route(s))
return DNS_SCOPE_NO;
+ /* Prefer suitable per-link scopes where possible */
+ if (dns_server_is_fallback(dns_scope_get_dns_server(s)))
+ return DNS_SCOPE_LAST_RESORT;
+
return DNS_SCOPE_MAYBE;
}