diff --git a/control/controlclient/netmap.go b/control/controlclient/netmap.go index e9cbb4222..7e4846928 100644 --- a/control/controlclient/netmap.go +++ b/control/controlclient/netmap.go @@ -312,12 +312,14 @@ func (nm *NetworkMap) WGCfg(logf logger.Logf, flags WGConfigFlags) (*wgcfg.Confi for _, allowedIP := range peer.AllowedIPs { if allowedIP.Bits == 0 { if (flags & AllowDefaultRoute) == 0 { - logf("[v1] wgcfg: %v skipping default route", peer.Key.ShortString()) + logf("[v1] wgcfg: not accepting default route from %q (%v)", + nodeDebugName(peer), peer.Key.ShortString()) continue } } else if cidrIsSubnet(peer, allowedIP) { if (flags & AllowSubnetRoutes) == 0 { - logf("[v1] wgcfg: %v skipping subnet route", peer.Key.ShortString()) + logf("[v1] wgcfg: not accepting subnet route %v from %q (%v)", + allowedIP, nodeDebugName(peer), peer.Key.ShortString()) continue } } @@ -328,6 +330,20 @@ func (nm *NetworkMap) WGCfg(logf logger.Logf, flags WGConfigFlags) (*wgcfg.Confi return cfg, nil } +func nodeDebugName(n *tailcfg.Node) string { + name := n.Name + if name == "" { + name = n.Hostinfo.Hostname + } + if i := strings.Index(name, "."); i != -1 { + name = name[:i] + } + if name == "" && len(n.Addresses) != 0 { + return n.Addresses[0].String() + } + return name +} + // cidrIsSubnet reports whether cidr is a non-default-route subnet // exported by node that is not one of its own self addresses. func cidrIsSubnet(node *tailcfg.Node, cidr netaddr.IPPrefix) bool {