mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-19 13:11:41 +00:00
net/dns: correctly capture all traffic in non-split configs.
Signed-off-by: David Anderson <danderson@tailscale.com>
This commit is contained in:
parent
ca283ac899
commit
4be26b269f
@ -137,13 +137,34 @@ func (m *nmManager) trySet(ctx context.Context, config OSConfig) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
seen := map[dnsname.FQDN]bool{}
|
||||||
|
var search []string
|
||||||
|
for _, dom := range config.SearchDomains {
|
||||||
|
if seen[dom] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[dom] = true
|
||||||
|
search = append(search, dom.WithTrailingDot())
|
||||||
|
}
|
||||||
|
for _, dom := range config.MatchDomains {
|
||||||
|
if seen[dom] {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[dom] = true
|
||||||
|
search = append(search, "~"+dom.WithTrailingDot())
|
||||||
|
}
|
||||||
|
if len(config.MatchDomains) == 0 {
|
||||||
|
// Non-split routing requested, add an all-domains match.
|
||||||
|
search = append(search, "~.")
|
||||||
|
}
|
||||||
|
|
||||||
general := settings["connection"]
|
general := settings["connection"]
|
||||||
general["llmnr"] = dbus.MakeVariant(0)
|
general["llmnr"] = dbus.MakeVariant(0)
|
||||||
general["mdns"] = dbus.MakeVariant(0)
|
general["mdns"] = dbus.MakeVariant(0)
|
||||||
|
|
||||||
ipv4Map := settings["ipv4"]
|
ipv4Map := settings["ipv4"]
|
||||||
ipv4Map["dns"] = dbus.MakeVariant(dnsv4)
|
ipv4Map["dns"] = dbus.MakeVariant(dnsv4)
|
||||||
ipv4Map["dns-search"] = dbus.MakeVariant(config.SearchDomains)
|
ipv4Map["dns-search"] = dbus.MakeVariant(search)
|
||||||
// We should only request priority if we have nameservers to set.
|
// We should only request priority if we have nameservers to set.
|
||||||
if len(dnsv4) == 0 {
|
if len(dnsv4) == 0 {
|
||||||
ipv4Map["dns-priority"] = dbus.MakeVariant(lowerPriority)
|
ipv4Map["dns-priority"] = dbus.MakeVariant(lowerPriority)
|
||||||
@ -179,7 +200,7 @@ func (m *nmManager) trySet(ctx context.Context, config OSConfig) error {
|
|||||||
ipv6Map["never-default"] = dbus.MakeVariant(true)
|
ipv6Map["never-default"] = dbus.MakeVariant(true)
|
||||||
|
|
||||||
ipv6Map["dns"] = dbus.MakeVariant(dnsv6)
|
ipv6Map["dns"] = dbus.MakeVariant(dnsv6)
|
||||||
ipv6Map["dns-search"] = dbus.MakeVariant(config.SearchDomains)
|
ipv6Map["dns-search"] = dbus.MakeVariant(search)
|
||||||
if len(dnsv6) == 0 {
|
if len(dnsv6) == 0 {
|
||||||
ipv6Map["dns-priority"] = dbus.MakeVariant(lowerPriority)
|
ipv6Map["dns-priority"] = dbus.MakeVariant(lowerPriority)
|
||||||
} else if len(config.MatchDomains) > 0 {
|
} else if len(config.MatchDomains) > 0 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user