diff --git a/daemon/libnetwork/internal/resolvconf/resolvconf.go b/daemon/libnetwork/internal/resolvconf/resolvconf.go index 6c8b2523c4..4b67fc9df5 100644 --- a/daemon/libnetwork/internal/resolvconf/resolvconf.go +++ b/daemon/libnetwork/internal/resolvconf/resolvconf.go @@ -44,6 +44,10 @@ var ( netip.MustParseAddr("2001:4860:4860::8888"), netip.MustParseAddr("2001:4860:4860::8844"), } + defaultLoopbackNSs = []netip.Addr{ + netip.MustParseAddr("127.0.0.1"), + netip.MustParseAddr("::1"), + } ) // ResolvConf represents a resolv.conf file. It can be constructed by @@ -286,7 +290,13 @@ func (rc *ResolvConf) TransformForIntNS( rc.md.Transform = "internal resolver" if len(rc.md.ExtNameServers) == 0 { - rc.md.Warnings = append(rc.md.Warnings, "NO EXTERNAL NAMESERVERS DEFINED") + for _, addr := range defaultLoopbackNSs { + rc.md.ExtNameServers = append(rc.md.ExtNameServers, ExtDNSEntry{ + Addr: addr, + HostLoopback: true, + }) + } + rc.md.Warnings = append(rc.md.Warnings, "Used default nameservers.") } return slices.Clone(rc.md.ExtNameServers), nil } diff --git a/daemon/libnetwork/internal/resolvconf/resolvconf_test.go b/daemon/libnetwork/internal/resolvconf/resolvconf_test.go index 8996e321c9..66ee083d56 100644 --- a/daemon/libnetwork/internal/resolvconf/resolvconf_test.go +++ b/daemon/libnetwork/internal/resolvconf/resolvconf_test.go @@ -404,6 +404,10 @@ func TestRCTransformForIntNS(t *testing.T) { { name: "No config", input: "", + expExtServers: []ExtDNSEntry{ + mke("127.0.0.1", true), + mke("::1", true), + }, }, } diff --git a/daemon/libnetwork/internal/resolvconf/testdata/TestRCTransformForIntNS/No_config.golden b/daemon/libnetwork/internal/resolvconf/testdata/TestRCTransformForIntNS/No_config.golden index 253fecad24..f56be2a250 100644 --- a/daemon/libnetwork/internal/resolvconf/testdata/TestRCTransformForIntNS/No_config.golden +++ b/daemon/libnetwork/internal/resolvconf/testdata/TestRCTransformForIntNS/No_config.golden @@ -1,5 +1,6 @@ nameserver 127.0.0.11 # Based on host file: '/etc/resolv.conf' (internal resolver) -# NO EXTERNAL NAMESERVERS DEFINED +# Used default nameservers. +# ExtServers: [host(127.0.0.1) host(::1)] # Overrides: []