mirror of
https://github.com/tailscale/tailscale.git
synced 2025-07-31 16:23:44 +00:00
Set a debug knob for excluding interfaces
Updates #1552 Signed-off-by: Lee Briggs <lee@leebriggs.co.uk>
This commit is contained in:
parent
ffb1dda245
commit
1014beeb8d
@ -27,6 +27,9 @@ import (
|
|||||||
// same interface and subnet.
|
// same interface and subnet.
|
||||||
var forceAllIPv6Endpoints = envknob.RegisterBool("TS_DEBUG_FORCE_ALL_IPV6_ENDPOINTS")
|
var forceAllIPv6Endpoints = envknob.RegisterBool("TS_DEBUG_FORCE_ALL_IPV6_ENDPOINTS")
|
||||||
|
|
||||||
|
// set a debug knob to exclude interfaces from the list of interfaces
|
||||||
|
var excludedInterfaces = envknob.RegisterString("TS_DEBUG_EXCLUDED_INTERFACES")
|
||||||
|
|
||||||
// LoginEndpointForProxyDetermination is the URL used for testing
|
// LoginEndpointForProxyDetermination is the URL used for testing
|
||||||
// which HTTP proxy the system should use.
|
// which HTTP proxy the system should use.
|
||||||
var LoginEndpointForProxyDetermination = "https://controlplane.tailscale.com/"
|
var LoginEndpointForProxyDetermination = "https://controlplane.tailscale.com/"
|
||||||
@ -46,6 +49,22 @@ func isProblematicInterface(nif *net.Interface) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isExcludedInterface(nif *net.Interface) bool {
|
||||||
|
if nif == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
remain := excludedInterfaces()
|
||||||
|
for remain != "" {
|
||||||
|
var candidate string
|
||||||
|
candidate, remain, _ = strings.Cut(remain, ",")
|
||||||
|
if strings.TrimSpace(candidate) == nif.Name {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// LocalAddresses returns the machine's IP addresses, separated by
|
// LocalAddresses returns the machine's IP addresses, separated by
|
||||||
// whether they're loopback addresses. If there are no regular addresses
|
// whether they're loopback addresses. If there are no regular addresses
|
||||||
// it will return any IPv4 linklocal or IPv6 unique local addresses because we
|
// it will return any IPv4 linklocal or IPv6 unique local addresses because we
|
||||||
@ -59,9 +78,9 @@ func LocalAddresses() (regular, loopback []netip.Addr, err error) {
|
|||||||
var regular4, regular6, linklocal4, ula6 []netip.Addr
|
var regular4, regular6, linklocal4, ula6 []netip.Addr
|
||||||
for _, iface := range ifaces {
|
for _, iface := range ifaces {
|
||||||
stdIf := iface.Interface
|
stdIf := iface.Interface
|
||||||
if !isUp(stdIf) || isProblematicInterface(stdIf) {
|
if !isUp(stdIf) || isProblematicInterface(stdIf) || isExcludedInterface(stdIf) {
|
||||||
// Skip down interfaces and ones that are
|
// Skip down interfaces and ones that are
|
||||||
// problematic that we don't want to try to
|
// problematic or that we don't want to try to
|
||||||
// send Tailscale traffic over.
|
// send Tailscale traffic over.
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user