c/takeover: add fallback DNS servers
As it's not possible to reliably dump DNS servers from a Linux system,
add Google's and Cloudflare's public DNS servers if none were found.
Change-Id: Id9dd3a884217cccc0260bd61514aeb545874c708
Reviewed-on: https://review.monogon.dev/c/monogon/+/1522
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/cloud/takeover/takeover.go b/cloud/takeover/takeover.go
index fc71690..9de39f5 100644
--- a/cloud/takeover/takeover.go
+++ b/cloud/takeover/takeover.go
@@ -35,6 +35,7 @@
"source.monogon.dev/metropolis/pkg/bootparam"
"source.monogon.dev/metropolis/pkg/kexec"
netdump "source.monogon.dev/net/dump"
+ netapi "source.monogon.dev/net/proto"
)
//go:embed third_party/linux/bzImage
@@ -98,6 +99,14 @@
return nil, fmt.Errorf("failed to dump network configuration: %w", err)
}
+ if len(netconf.Nameserver) == 0 {
+ netconf.Nameserver = []*netapi.Nameserver{{
+ Ip: "8.8.8.8",
+ }, {
+ Ip: "1.1.1.1",
+ }}
+ }
+
// Generate agent private key
pubKey, privKey, err := ed25519.GenerateKey(rand.Reader)
if err != nil {