ipn/ipnlocal, net/dns*, util/cloudenv: add AWS DNS support

And remove the GCP special-casing from ipn/ipnlocal; do it only in the
forwarder for *.internal.

Fixes #4980
Fixes #4981

Change-Id: I5c481e96d91f3d51d274a80fbd37c38f16dfa5cb
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2022-06-29 19:32:41 -07:00
committed by Brad Fitzpatrick
parent 88c2afd1e3
commit aa37aece9c
7 changed files with 103 additions and 82 deletions
+1 -37
View File
@@ -306,42 +306,6 @@ func TestDNSConfigForNetmap(t *testing.T) {
Routes: map[dnsname.FQDN][]*dnstype.Resolver{},
},
},
{
name: "google_cloud",
nm: &netmap.NetworkMap{
DNS: tailcfg.DNSConfig{},
},
cloud: cloudenv.GCP,
prefs: &ipn.Prefs{
CorpDNS: true,
},
want: &dns.Config{
Hosts: map[dnsname.FQDN][]netaddr.IP{},
Routes: map[dnsname.FQDN][]*dnstype.Resolver{
"internal.": []*dnstype.Resolver{{Addr: cloudenv.GoogleMetadataAndDNSIP}},
},
},
},
{
name: "google_cloud_with_exiting_internal",
nm: &netmap.NetworkMap{
DNS: tailcfg.DNSConfig{
Routes: map[string][]*dnstype.Resolver{
".internal": []*dnstype.Resolver{{Addr: "1.2.3.4"}},
},
},
},
cloud: cloudenv.GCP,
prefs: &ipn.Prefs{
CorpDNS: true,
},
want: &dns.Config{
Hosts: map[dnsname.FQDN][]netaddr.IP{},
Routes: map[dnsname.FQDN][]*dnstype.Resolver{
"internal.": []*dnstype.Resolver{{Addr: "1.2.3.4"}},
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
@@ -350,7 +314,7 @@ func TestDNSConfigForNetmap(t *testing.T) {
verOS = "linux"
}
var log tstest.MemLogger
got := dnsConfigForNetmap(tt.nm, tt.prefs, log.Logf, verOS, tt.cloud)
got := dnsConfigForNetmap(tt.nm, tt.prefs, log.Logf, verOS)
if !reflect.DeepEqual(got, tt.want) {
gotj, _ := json.MarshalIndent(got, "", "\t")
wantj, _ := json.MarshalIndent(tt.want, "", "\t")