]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: demote the global unicast scope
authorRonan Pigott <ronan@rjp.ie>
Mon, 19 Aug 2024 20:18:10 +0000 (13:18 -0700)
committerLuca Boccassi <luca.boccassi@gmail.com>
Tue, 20 Aug 2024 09:45:22 +0000 (11:45 +0200)
This will greatly reduce the number of cases where the global unicast
scope overlaps with link scopes configured as default-route, making it
feasible to use the global DNS setting in conjunction with per-link dns
servers configured by the network.

This change is preferred over demoting links to default-route=no where
the user prefers to use the network provided DNS servers, and I expect
it is non-disruptive in that it should not degrade the efficacy of any
existing configuration.

man/systemd-resolved.service.xml
src/resolve/resolved-dns-scope.c

index 13c0da987fe6fc0dbbd3116a4682ec548dba42b4..34f05bd8b0a4b815002be248d7f6785212b62090 100644 (file)
 
       <listitem><para>If a query does not match any configured routing domain (either per-link or global), it
       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>
+      option set.</para></listitem>
+
+      <listitem><para>If no links are configured with <varname>DefaultRoute=</varname>, it is sent to 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>
index 21b9844e0472f1a4d8a352b6f04d94426ec46f39..3bb7c0aa2193813324f093c0dcfeec16bf6b8836 100644 (file)
@@ -778,7 +778,8 @@ DnsScopeMatch dns_scope_good_domain(
                 if (!dns_scope_is_default_route(s))
                         return DNS_SCOPE_NO;
 
-                return DNS_SCOPE_MAYBE;
+                /* Prefer suitable per-link scopes where possible */
+                return s->link ? DNS_SCOPE_MAYBE : DNS_SCOPE_LAST_RESORT;
         }
 
         case DNS_PROTOCOL_MDNS: {