@ -28,6 +28,7 @@ import (
"tailscale.com/net/dns/publicdns"
"tailscale.com/net/dns/resolver"
"tailscale.com/net/netmon"
"tailscale.com/net/tsaddr"
"tailscale.com/net/tsdial"
"tailscale.com/tstest"
"tailscale.com/types/dnstype"
@ -172,6 +173,8 @@ func TestCompileHostEntries(t *testing.T) {
}
}
var serviceAddr46 = [ ] netip . Addr { tsaddr . TailscaleServiceIP ( ) , tsaddr . TailscaleServiceIPv6 ( ) }
func TestManager ( t * testing . T ) {
if runtime . GOOS == "windows" {
t . Skipf ( "test's assumptions break because of https://github.com/tailscale/corp/issues/1662" )
@ -189,6 +192,7 @@ func TestManager(t *testing.T) {
split bool
bs OSConfig
os OSConfig
knobs * controlknobs . Knobs
rs resolver . Config
goos string // empty means "linux"
} {
@ -231,7 +235,7 @@ func TestManager(t *testing.T) {
"bar.tld." , "2.3.4.5" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
} ,
rs : resolver . Config {
Hosts : hosts (
@ -317,7 +321,7 @@ func TestManager(t *testing.T) {
"bradfitz.ts.com." , "2.3.4.5" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -340,7 +344,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -359,7 +363,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -377,7 +381,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -386,6 +390,33 @@ func TestManager(t *testing.T) {
"corp.com." , "2.2.2.2" ) ,
} ,
} ,
{
name : "controlknob-disable-v6-registration" ,
in : Config {
DefaultResolvers : mustRes ( "1.1.1.1" , "9.9.9.9" ) ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
Routes : upstreams ( "ts.com" , "" ) ,
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
} ,
knobs : ( func ( ) * controlknobs . Knobs {
k := new ( controlknobs . Knobs )
k . ForceRegisterMagicDNSIPv4Only . Store ( true )
return k
} ) ( ) ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) , // without IPv6
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
Routes : upstreams ( "." , "1.1.1.1" , "9.9.9.9" ) ,
Hosts : hosts (
"dave.ts.com." , "1.2.3.4" ,
"bradfitz.ts.com." , "2.3.4.5" ) ,
LocalDomains : fqdns ( "ts.com." ) ,
} ,
} ,
{
name : "routes" ,
in : Config {
@ -397,7 +428,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "coffee.shop" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" , "coffee.shop" ) ,
} ,
rs : resolver . Config {
@ -432,7 +463,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "coffee.shop" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" , "coffee.shop" ) ,
} ,
rs : resolver . Config {
@ -452,7 +483,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
MatchDomains : fqdns ( "bigco.net" , "corp.com" ) ,
} ,
@ -477,7 +508,7 @@ func TestManager(t *testing.T) {
} ,
split : false ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -502,7 +533,7 @@ func TestManager(t *testing.T) {
} ,
split : false ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -527,7 +558,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "coffee.shop" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" , "coffee.shop" ) ,
} ,
rs : resolver . Config {
@ -549,7 +580,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
MatchDomains : fqdns ( "ts.com" ) ,
} ,
@ -575,7 +606,7 @@ func TestManager(t *testing.T) {
} ,
split : false ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -601,7 +632,7 @@ func TestManager(t *testing.T) {
} ,
split : false ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -627,7 +658,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "coffee.shop" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" , "coffee.shop" ) ,
} ,
rs : resolver . Config {
@ -653,7 +684,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
MatchDomains : fqdns ( "corp.com" , "ts.com" ) ,
} ,
@ -683,7 +714,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -715,7 +746,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -740,7 +771,7 @@ func TestManager(t *testing.T) {
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "tailscale.com" , "universe.tf" ) ,
} ,
rs : resolver . Config {
@ -768,7 +799,7 @@ func TestManager(t *testing.T) {
DefaultResolvers : mustRes ( "2a07:a8c0::c3:a884" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
} ,
rs : resolver . Config {
Routes : upstreams ( "." , "2a07:a8c0::c3:a884" ) ,
@ -780,7 +811,7 @@ func TestManager(t *testing.T) {
DefaultResolvers : mustRes ( "https://dns.nextdns.io/c3a884" ) ,
} ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
} ,
rs : resolver . Config {
Routes : upstreams ( "." , "https://dns.nextdns.io/c3a884" ) ,
@ -796,7 +827,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "optimistic-display.ts.net" ) ,
MatchDomains : fqdns ( "ts.net" ) ,
} ,
@ -821,7 +852,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "optimistic-display.ts.net" ) ,
} ,
rs : resolver . Config {
@ -844,7 +875,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "optimistic-display.ts.net" ) ,
} ,
rs : resolver . Config {
@ -885,7 +916,7 @@ func TestManager(t *testing.T) {
} ,
} ,
} ,
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "ts.com" , "universe.tf" ) ,
MatchDomains : fqdns ( "corp.com" , "ts.com" ) ,
} ,
@ -912,7 +943,7 @@ func TestManager(t *testing.T) {
} ,
split : true ,
os : OSConfig {
Nameservers : mustIPs ( "100.100.100.100" ) ,
Nameservers : serviceAddr46 ,
SearchDomains : fqdns ( "ts.com" , "universe.tf" ) ,
MatchDomains : fqdns ( "corp.com" , "ts.com" ) ,
} ,
@ -946,7 +977,10 @@ func TestManager(t *testing.T) {
if goos == "" {
goos = "linux"
}
knobs := & controlknobs . Knobs { }
knobs := test . knobs
if knobs == nil {
knobs = & controlknobs . Knobs { }
}
bus := eventbustest . NewBus ( t )
dialer := tsdial . NewDialer ( netmon . NewStatic ( ) )
dialer . SetBus ( bus )