From b2a10780af2269c38c60b51db9dc77704e7a7922 Mon Sep 17 00:00:00 2001 From: Viktor Liu <17948409+lixmal@users.noreply.github.com> Date: Fri, 16 May 2025 09:43:13 +0200 Subject: [PATCH] [client] Disable dnssec for systemd explicitly (#3831) --- client/internal/dns/systemd_linux.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/client/internal/dns/systemd_linux.go b/client/internal/dns/systemd_linux.go index 53c5c58a0..9040ed787 100644 --- a/client/internal/dns/systemd_linux.go +++ b/client/internal/dns/systemd_linux.go @@ -30,9 +30,12 @@ const ( systemdDbusSetDNSMethodSuffix = systemdDbusLinkInterface + ".SetDNS" systemdDbusSetDefaultRouteMethodSuffix = systemdDbusLinkInterface + ".SetDefaultRoute" systemdDbusSetDomainsMethodSuffix = systemdDbusLinkInterface + ".SetDomains" + systemdDbusSetDNSSECMethodSuffix = systemdDbusLinkInterface + ".SetDNSSEC" systemdDbusResolvConfModeForeign = "foreign" dbusErrorUnknownObject = "org.freedesktop.DBus.Error.UnknownObject" + + dnsSecDisabled = "no" ) type systemdDbusConfigurator struct { @@ -95,9 +98,13 @@ func (s *systemdDbusConfigurator) applyDNSConfig(config HostDNSConfig, stateMana Family: unix.AF_INET, Address: ipAs4[:], } - err = s.callLinkMethod(systemdDbusSetDNSMethodSuffix, []systemdDbusDNSInput{defaultLinkInput}) - if err != nil { - return fmt.Errorf("setting the interface DNS server %s:%d failed with error: %w", config.ServerIP, config.ServerPort, err) + if err = s.callLinkMethod(systemdDbusSetDNSMethodSuffix, []systemdDbusDNSInput{defaultLinkInput}); err != nil { + return fmt.Errorf("set interface DNS server %s:%d: %w", config.ServerIP, config.ServerPort, err) + } + + // We don't support dnssec. On some machines this is default on so we explicitly set it to off + if err = s.callLinkMethod(systemdDbusSetDNSSECMethodSuffix, dnsSecDisabled); err != nil { + log.Warnf("failed to set DNSSEC to 'no': %v", err) } var (