mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-03 23:05:50 +00:00
net/tsaddr: remove IsULA, replace with netaddr.IP.IsPrivate
Signed-off-by: Matt Layher <mdlayher@gmail.com>
This commit is contained in:
parent
d37451bac6
commit
3ff8a55fa7
@ -134,7 +134,7 @@ func LocalAddresses() (regular, loopback []netaddr.IP, err error) {
|
|||||||
// but their OS supports IPv6 so they have an fe80::
|
// but their OS supports IPv6 so they have an fe80::
|
||||||
// address. We don't want to report all of those
|
// address. We don't want to report all of those
|
||||||
// IPv6 LL to Control.
|
// IPv6 LL to Control.
|
||||||
} else if ip.Is6() && tsaddr.IsULA(ip) {
|
} else if ip.Is6() && ip.IsPrivate() {
|
||||||
// Google Cloud Run uses NAT with IPv6 Unique
|
// Google Cloud Run uses NAT with IPv6 Unique
|
||||||
// Local Addresses to provide IPv6 connectivity.
|
// Local Addresses to provide IPv6 connectivity.
|
||||||
ula6 = append(ula6, ip)
|
ula6 = append(ula6, ip)
|
||||||
@ -548,7 +548,7 @@ func isUsableV4(ip netaddr.IP) bool {
|
|||||||
// (fc00::/7) are in some environments used with address translation.
|
// (fc00::/7) are in some environments used with address translation.
|
||||||
func isUsableV6(ip netaddr.IP) bool {
|
func isUsableV6(ip netaddr.IP) bool {
|
||||||
return v6Global1.Contains(ip) ||
|
return v6Global1.Contains(ip) ||
|
||||||
(tsaddr.IsULA(ip) && !tsaddr.TailscaleULARange().Contains(ip))
|
(ip.IsPrivate() && !tsaddr.TailscaleULARange().Contains(ip))
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -105,11 +105,6 @@ func Tailscale4To6(ipv4 netaddr.IP) netaddr.IP {
|
|||||||
return netaddr.IPFrom16(ret)
|
return netaddr.IPFrom16(ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsULA(ip netaddr.IP) bool {
|
|
||||||
ulaRange.Do(func() { mustPrefix(&ulaRange.v, "fc00::/7") })
|
|
||||||
return ulaRange.v.Contains(ip)
|
|
||||||
}
|
|
||||||
|
|
||||||
func mustPrefix(v *netaddr.IPPrefix, prefix string) {
|
func mustPrefix(v *netaddr.IPPrefix, prefix string) {
|
||||||
var err error
|
var err error
|
||||||
*v, err = netaddr.ParseIPPrefix(prefix)
|
*v, err = netaddr.ParseIPPrefix(prefix)
|
||||||
|
@ -43,28 +43,6 @@ func TestCGNATRange(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestIsUla(t *testing.T) {
|
|
||||||
tests := []struct {
|
|
||||||
name string
|
|
||||||
ip string
|
|
||||||
want bool
|
|
||||||
}{
|
|
||||||
{"first ULA", "fc00::1", true},
|
|
||||||
{"not ULA", "fb00::1", false},
|
|
||||||
{"Tailscale", "fd7a:115c:a1e0::1", true},
|
|
||||||
{"Cloud Run", "fddf:3978:feb1:d745::1", true},
|
|
||||||
{"zeros", "0000:0000:0000:0000:0000:0000:0000:0000", false},
|
|
||||||
{"Link Local", "fe80::1", false},
|
|
||||||
{"Global", "2602::1", false},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, test := range tests {
|
|
||||||
if got := IsULA(netaddr.MustParseIP(test.ip)); got != test.want {
|
|
||||||
t.Errorf("IsULA(%s) = %v, want %v", test.name, got, test.want)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestNewContainsIPFunc(t *testing.T) {
|
func TestNewContainsIPFunc(t *testing.T) {
|
||||||
f := NewContainsIPFunc([]netaddr.IPPrefix{netaddr.MustParseIPPrefix("10.0.0.0/8")})
|
f := NewContainsIPFunc([]netaddr.IPPrefix{netaddr.MustParseIPPrefix("10.0.0.0/8")})
|
||||||
if f(netaddr.MustParseIP("8.8.8.8")) {
|
if f(netaddr.MustParseIP("8.8.8.8")) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user