From 6fd9e28bd06bd2bdb53ed419a0101f8973b14e4b Mon Sep 17 00:00:00 2001 From: David Anderson Date: Tue, 20 Apr 2021 18:05:17 -0700 Subject: [PATCH] ipn/ipnlocal: add arpa suffixes to MagicDNS for reverse lookups. This used to not be necessary, because MagicDNS always did full proxying. But with split DNS, we need to know which names to route to our resolver, otherwise reverse lookups break. This captures the entire CGNAT range, as well as our Tailscale ULA. Signed-off-by: David Anderson --- ipn/ipnlocal/local.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/ipn/ipnlocal/local.go b/ipn/ipnlocal/local.go index ff352b5fd..154d21d2c 100644 --- a/ipn/ipnlocal/local.go +++ b/ipn/ipnlocal/local.go @@ -1806,7 +1806,19 @@ func magicDNSRootDomains(nm *netmap.NetworkMap) []dnsname.FQDN { // TODO: propagate error return nil } - return []dnsname.FQDN{fqdn} + ret := []dnsname.FQDN{ + fqdn, + dnsname.FQDN("0.e.1.a.c.5.1.1.a.7.d.f.ip6.arpa."), + } + for i := 64; i <= 127; i++ { + fqdn, err = dnsname.ToFQDN(fmt.Sprintf("%d.100.in-addr.arpa.", i)) + if err != nil { + // TODO: propagate error + continue + } + ret = append(ret, fqdn) + } + return ret } return nil }