@@ -3,6 +3,7 @@ package tailnet_test
3
3
import (
4
4
"context"
5
5
"net/netip"
6
+ "strings"
6
7
"testing"
7
8
"time"
8
9
@@ -30,7 +31,7 @@ func TestTailnet(t *testing.T) {
30
31
t .Parallel ()
31
32
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
32
33
conn , err := tailnet .NewConn (& tailnet.Options {
33
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
34
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
34
35
Logger : logger .Named ("w1" ),
35
36
DERPMap : derpMap ,
36
37
})
@@ -42,7 +43,7 @@ func TestTailnet(t *testing.T) {
42
43
t .Parallel ()
43
44
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
44
45
ctx := testutil .Context (t , testutil .WaitLong )
45
- w1IP := tailnet .IP ()
46
+ w1IP := tailnet .TailscaleServicePrefix . RandomAddr ()
46
47
w1 , err := tailnet .NewConn (& tailnet.Options {
47
48
Addresses : []netip.Prefix {netip .PrefixFrom (w1IP , 128 )},
48
49
Logger : logger .Named ("w1" ),
@@ -51,7 +52,7 @@ func TestTailnet(t *testing.T) {
51
52
require .NoError (t , err )
52
53
53
54
w2 , err := tailnet .NewConn (& tailnet.Options {
54
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
55
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
55
56
Logger : logger .Named ("w2" ),
56
57
DERPMap : derpMap ,
57
58
})
@@ -106,7 +107,7 @@ func TestTailnet(t *testing.T) {
106
107
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
107
108
ctx := testutil .Context (t , testutil .WaitMedium )
108
109
109
- w1IP := tailnet .IP ()
110
+ w1IP := tailnet .TailscaleServicePrefix . RandomAddr ()
110
111
derpMap := tailnettest .RunDERPOnlyWebSockets (t )
111
112
w1 , err := tailnet .NewConn (& tailnet.Options {
112
113
Addresses : []netip.Prefix {netip .PrefixFrom (w1IP , 128 )},
@@ -117,7 +118,7 @@ func TestTailnet(t *testing.T) {
117
118
require .NoError (t , err )
118
119
119
120
w2 , err := tailnet .NewConn (& tailnet.Options {
120
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
121
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
121
122
Logger : logger .Named ("w2" ),
122
123
DERPMap : derpMap ,
123
124
BlockEndpoints : true ,
@@ -168,7 +169,7 @@ func TestTailnet(t *testing.T) {
168
169
t .Parallel ()
169
170
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
170
171
ctx := testutil .Context (t , testutil .WaitLong )
171
- w1IP := tailnet .IP ()
172
+ w1IP := tailnet .TailscaleServicePrefix . RandomAddr ()
172
173
w1 , err := tailnet .NewConn (& tailnet.Options {
173
174
Addresses : []netip.Prefix {netip .PrefixFrom (w1IP , 128 )},
174
175
Logger : logger .Named ("w1" ),
@@ -177,7 +178,7 @@ func TestTailnet(t *testing.T) {
177
178
require .NoError (t , err )
178
179
179
180
w2 , err := tailnet .NewConn (& tailnet.Options {
180
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
181
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
181
182
Logger : logger .Named ("w2" ),
182
183
DERPMap : derpMap ,
183
184
})
@@ -211,7 +212,7 @@ func TestTailnet(t *testing.T) {
211
212
t .Parallel ()
212
213
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
213
214
ctx := testutil .Context (t , testutil .WaitLong )
214
- w1IP := tailnet .IP ()
215
+ w1IP := tailnet .TailscaleServicePrefix . RandomAddr ()
215
216
w1 , err := tailnet .NewConn (& tailnet.Options {
216
217
Addresses : []netip.Prefix {netip .PrefixFrom (w1IP , 128 )},
217
218
Logger : logger .Named ("w1" ),
@@ -221,7 +222,7 @@ func TestTailnet(t *testing.T) {
221
222
require .NoError (t , err )
222
223
223
224
w2 , err := tailnet .NewConn (& tailnet.Options {
224
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
225
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
225
226
Logger : logger .Named ("w2" ),
226
227
DERPMap : derpMap ,
227
228
BlockEndpoints : true ,
@@ -261,7 +262,7 @@ func TestConn_PreferredDERP(t *testing.T) {
261
262
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
262
263
derpMap , _ := tailnettest .RunDERPAndSTUN (t )
263
264
conn , err := tailnet .NewConn (& tailnet.Options {
264
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
265
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
265
266
Logger : logger .Named ("w1" ),
266
267
DERPMap : derpMap ,
267
268
})
@@ -290,7 +291,7 @@ func TestConn_UpdateDERP(t *testing.T) {
290
291
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
291
292
292
293
derpMap1 , _ := tailnettest .RunDERPAndSTUN (t )
293
- ip := tailnet .IP ()
294
+ ip := tailnet .TailscaleServicePrefix . RandomAddr ()
294
295
conn , err := tailnet .NewConn (& tailnet.Options {
295
296
Addresses : []netip.Prefix {netip .PrefixFrom (ip , 128 )},
296
297
Logger : logger .Named ("w1" ),
@@ -320,7 +321,7 @@ func TestConn_UpdateDERP(t *testing.T) {
320
321
321
322
// Connect from a different client.
322
323
client1 , err := tailnet .NewConn (& tailnet.Options {
323
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
324
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
324
325
Logger : logger .Named ("client1" ),
325
326
DERPMap : derpMap1 ,
326
327
BlockEndpoints : true ,
@@ -394,7 +395,7 @@ parentLoop:
394
395
// Connect from a different different client with up-to-date derp map and
395
396
// nodes.
396
397
client2 , err := tailnet .NewConn (& tailnet.Options {
397
- Addresses : []netip.Prefix {netip . PrefixFrom ( tailnet .IP (), 128 )},
398
+ Addresses : []netip.Prefix {tailnet .TailscaleServicePrefix . RandomPrefix ( )},
398
399
Logger : logger .Named ("client2" ),
399
400
DERPMap : derpMap2 ,
400
401
BlockEndpoints : true ,
@@ -425,7 +426,7 @@ func TestConn_BlockEndpoints(t *testing.T) {
425
426
derpMap , _ := tailnettest .RunDERPAndSTUN (t )
426
427
427
428
// Setup conn 1.
428
- ip1 := tailnet .IP ()
429
+ ip1 := tailnet .TailscaleServicePrefix . RandomAddr ()
429
430
conn1 , err := tailnet .NewConn (& tailnet.Options {
430
431
Addresses : []netip.Prefix {netip .PrefixFrom (ip1 , 128 )},
431
432
Logger : logger .Named ("w1" ),
@@ -439,7 +440,7 @@ func TestConn_BlockEndpoints(t *testing.T) {
439
440
}()
440
441
441
442
// Setup conn 2.
442
- ip2 := tailnet .IP ()
443
+ ip2 := tailnet .TailscaleServicePrefix . RandomAddr ()
443
444
conn2 , err := tailnet .NewConn (& tailnet.Options {
444
445
Addresses : []netip.Prefix {netip .PrefixFrom (ip2 , 128 )},
445
446
Logger : logger .Named ("w2" ),
@@ -492,3 +493,31 @@ func stitch(t *testing.T, dst, src *tailnet.Conn) {
492
493
assert .NoError (t , err )
493
494
})
494
495
}
496
+
497
+ func TestTailscaleServicePrefix (t * testing.T ) {
498
+ t .Parallel ()
499
+ a := tailnet .TailscaleServicePrefix .RandomAddr ()
500
+ require .True (t , strings .HasPrefix (a .String (), "fd7a:115c:a1e0" ))
501
+ p := tailnet .TailscaleServicePrefix .RandomPrefix ()
502
+ require .True (t , strings .HasPrefix (p .String (), "fd7a:115c:a1e0" ))
503
+ require .True (t , strings .HasSuffix (p .String (), "/128" ))
504
+ u := uuid .MustParse ("aaaaaaaa-aaaa-aaaa-aaaa-123456789abc" )
505
+ a = tailnet .TailscaleServicePrefix .AddrFromUUID (u )
506
+ require .Equal (t , "fd7a:115c:a1e0:aaaa:aaaa:1234:5678:9abc" , a .String ())
507
+ p = tailnet .TailscaleServicePrefix .PrefixFromUUID (u )
508
+ require .Equal (t , "fd7a:115c:a1e0:aaaa:aaaa:1234:5678:9abc/128" , p .String ())
509
+ }
510
+
511
+ func TestCoderServicePrefix (t * testing.T ) {
512
+ t .Parallel ()
513
+ a := tailnet .CoderServicePrefix .RandomAddr ()
514
+ require .True (t , strings .HasPrefix (a .String (), "fd60:627a:a42b" ))
515
+ p := tailnet .CoderServicePrefix .RandomPrefix ()
516
+ require .True (t , strings .HasPrefix (p .String (), "fd60:627a:a42b" ))
517
+ require .True (t , strings .HasSuffix (p .String (), "/128" ))
518
+ u := uuid .MustParse ("aaaaaaaa-aaaa-aaaa-aaaa-123456789abc" )
519
+ a = tailnet .CoderServicePrefix .AddrFromUUID (u )
520
+ require .Equal (t , "fd60:627a:a42b:aaaa:aaaa:1234:5678:9abc" , a .String ())
521
+ p = tailnet .CoderServicePrefix .PrefixFromUUID (u )
522
+ require .Equal (t , "fd60:627a:a42b:aaaa:aaaa:1234:5678:9abc/128" , p .String ())
523
+ }
0 commit comments